0

phpで注文ページを作ってみました。データベースにデータを保存するフォームを作成しました。フォーム番号はユーザーに基づいており、動的に作成されます。

<?php
if(isset($_POST['submit_num']))
{
    $number=$_POST['sky'];

    for($i=0;$i<$number;$i++)
    {
            $item = $_SESSION['item'];

            echo $item;
            $rec_query = "SELECT * FROM ylika";
            $rec_result= mysql_query($rec_query) or die("my eroors");

            echo '<form action="user_order_form.php" method="POST">';
            echo '<html>';
            while($row_rec = mysql_fetch_array($rec_result))
            {
                echo '<input type="checkbox" name="yliko[]" value='.$row_rec['onoma'].'> '.$row_rec['onoma'].'';
                echo '<br>';
            }
            echo '<br>';
            echo '<input type="submit" name="submit" value="ORDER">';
            echo '</form>';

    }

}
?>

したがって、それらを処理するための多くのフォームと 1 つのスクリプトがあります。1 つのフォームを送信すると、データがデータベースに適用されますが、他のフォームは消えます。これは 2 番目の php 'handler' です。

<?php
if (isset($_POST['submit']))
{   
    $max_id = "SELECT MAX(id_order) FROM id_of_orders";
    $x=mysql_query($max_id) or die("my eroors");
    $id= mysql_fetch_array($x);
    $xyz = $id['MAX(id_order)'];

    $item = $_SESSION['item'];
    $temp = $_POST['yliko'];
    $temp2 = implode(",", $temp);
    $inserts = ("INSERT INTO orders (order_id,product,ulika) VALUES ('$xyz' , '$item','$temp2')");
    $inc_prod=("UPDATE proion SET Counter = Counter + 1 WHERE proion.onomasia='$item'");
    mysql_query($inserts) or die(mysql_error());
    mysql_query($inc_prod) or die(mysql_error());
}
?>

すべてのフォームを送信したい。すべてのフォームに対して 1 つの送信ボタンを作成する必要がありますか、それともすべてを個別に処理する方法はありますか?

4

1 に答える 1

0

多数の送信フォームを持つことができますが<form>、それらすべてを含む 1 つの大きなフォームを定義するだけで、情報が失われることはありません。

<?php
if(isset($_POST['submit_num']))
{
    $number=$_POST['sky'];

    echo '<form action="user_order_form.php" method="POST">';
    for($i=0;$i<$number;$i++)
    {
            $item = $_SESSION['item'];

            echo $item;
            $rec_query = "SELECT * FROM ylika";
            $rec_result= mysql_query($rec_query) or die("my eroors");

            echo '<html>';
            while($row_rec = mysql_fetch_array($rec_result))
            {
                echo '<input type="checkbox" name="yliko[]" value='.$row_rec['onoma'].'> '.$row_rec['onoma'].'';
                echo '<br>';
            }
            echo '<br>';
            echo '<input type="submit" name="submit" value="ORDER">';

    }
    echo '</form>';

}
?>

~$i~ 識別子を入力名に追加できるようになったため、どれがどれであるかを簡単に区別できます。

于 2013-08-10T17:24:13.640 に答える