1

最大7つのフォーム行(フィールド)を動的に(追加-削除)作成するフォームがあります。追加の各フォーム行には、増分番号が追加されます(つまり、name = "product" next is name = "product2" .. "Product3"など)。そのため、issetを使用して投稿内容を確認し、投稿内容のみを挿入すると思いましたが、スキルが不足しているため、これは機能しません。以下の私のコードを参照してください:

    mysql_select_db("inventory", $con);

    $sql="INSERT INTO shipped (id, type, client, product, color, quantity)
    VALUES ('$_POST[productid]','$_POST[type]','$_POST[client]','$_POST[product]','$_POST[color]','$_POST[quantity]')";
    if( isset($_POST['productid2']) ) {
    "INSERT INTO shipped (id, type, client, product, color, quantity)
    VALUES ('$_POST[productid2]','$_POST[type2]','$_POST[client2]','$_POST[product2]','$_POST[color2]','$_POST[quantity2]')";
    }

製品ごとに「isset」を追加する予定でしたが、結果として、これは投稿値のセットの1つだけを挿入し、両方は挿入しません。私は最大でproduct7を使用する予定です(したがって、最大で7つのインサートがあります)。何か助けはありますか?

4

2 に答える 2

1

入力フィールドで配列を使用します

<input type="text" name="productid[]" />
<input type="text" name="type[]" />
<input type="text" name="client[]" />
<input type="text" name="product[]" />
<input type="text" name="color[]" />
<input type="text" name="quantity[]" />

サーバー側:

foreach($_POST['product'] as $k => $v){
   $sql="INSERT INTO shipped (id, type, client, product, color, quantity) VALUES 
       ($_POST['productid'][$k],$_POST['type'][$k],$_POST[client][$k]','$v','$_POST[color][$k]','$_POST[quantity][$k]')";

}
于 2012-06-15T17:57:52.107 に答える
0

さて、私は他の答えが好きでした。それは私が最終的に使用したソリューションよりもはるかにエレガントに見えたからです。しかし、実際には、他の答えはうまくいきませんでした。したがって、私のソリューションは、フォームフィールドの次のフォームセットが設定されているかどうかを確認し、設定されている場合は適切な挿入を表示することになりました。ここの最初の部分を参照してください:

mysql_select_db("inventory", $con);

if( !isset($_POST['productid2']) ) {
$sql="INSERT INTO shipped (id, type, client, product, color, quantity)
VALUES ('$_POST[productid]','$_POST[type]','$_POST[client]','$_POST[product]','$_POST[color]','$_POST[quantity]')";
}

if( isset($_POST['productid2']) ) {
$sql="INSERT INTO shipped (id, type, client, product, color, quantity)
VALUES ('$_POST[productid]','$_POST[type]','$_POST[client]','$_POST[product]','$_POST[color]','$_POST[quantity]'),
('$_POST[productid2]','$_POST[type2]','$_POST[client2]','$_POST[product2]','$_POST[color2]','$_POST[quantity2]')";
}

if( isset($_POST['productid3']) ) {
$sql="INSERT INTO shipped (id, type, client, product, color, quantity)
VALUES ('$_POST[productid]','$_POST[type]','$_POST[client]','$_POST[product]','$_POST[color]','$_POST[quantity]'),
('$_POST[productid2]','$_POST[type2]','$_POST[client2]','$_POST[product2]','$_POST[color2]','$_POST[quantity2]'),
('$_POST[productid3]','$_POST[type3]','$_POST[client3]','$_POST[product3]','$_POST[color3]','$_POST[quantity3]')";
}

このようにさらに4回...毎回他の値を追加します。フォームフィールドは最大7回しか追加できないため、これは私にとってはうまくいきます。したがって、無限である必要はありません。したがって、少量のフォームフィールドの追加のみを許可している場合、これはうまく機能します。

于 2012-06-16T00:13:03.260 に答える