-2

私はフォームを持っています...フォームにあるすべての製品のフィールドに同じ名前を使用する必要があります。

1 つの注文ボタンで複数のアイテムを追加したい場合、PartNo、Item、Price を変更することはできません。以下のコード例は、Cart32 のショッピング カート ソフトウェアを使用してカートに複数のアイテムを追加する場合に機能します。多くのアイテムに PartNo のような同じ名前を使用し、そのフィールドのすべての値を取得できる方法を知りたいです。

入力を受け取るために自分のページを作成しようとしましたが、私の人生では、PartNo、Qty、Price などの繰り返しフィールドのいずれかに対して複数のアイテムを取得することはできません。$_REQUEST、$_POST、および $_GET を試しましたが、最後の値しか取得できないため、大文字と小文字の問題ではありません。

これは簡略化された例です。

<FORM name ='x' METHOD="post" ACTION="https://www.cart32.com/cart32.ex…
<!-- item 1 -->
<div id'=x'>
#1 | desc1 | $27.99 Qty: <input type='text' size='3' name='Qty' value='0'>
<input type=hidden name='PartNo' value='11'>
<input type=hidden name='Item' value='product1'>
<input type=hidden name='Price' value='27.99'>
</div>


<!-- item 2 -->
<div id'=x'>
#2 | desc2 | $7.99 Qty: <input type='text' size='3' name='Qty' value='0'>
<input type=hidden name='PartNo' value='11'>
<input type=hidden name='Item' value='product1'>
<input type=hidden name='Price' value='7.99'>
</div>

<div><input type='submit' value='Order'></div>
</form>
4

1 に答える 1

2

フォームのフィールド名に [] を追加すると、PHP はそれらのフィールドを取得して配列に変換します。

<input type="text" name="field[]" value="first" />
<input type="text" name="field[]" value="second" />
<input type="text" name="field[]" value="third" />

次の $_POST 構造が生成されます。

$_POST = array(
    'field' => array(
         0 => 'first',
         1 => 'second',
         2 => 'third',
    )
);

別の方法は、新しいブロックごとに既存のフィールド セットを複製するときに、各フィールド名に増分番号を追加することです。これにより、ブロック間の適切な分離が提供され、関連するフィールドが同じ数値タグを持つことが保証されますが、処理が複雑になります。

ファイルphpフォーム送信に複数の入力を追加する

于 2012-07-11T23:31:20.703 に答える