1

可能であれば、自分で問題に直接取り組むことができるように、これをどのように行うべきかについての一般的な説明をお願いします. そのままでは、解決策を考えるのに苦労しています。

書籍情報 (ISBN、価格、状態など) を含むフォームから値を渡しています。1冊の本でとてもうまくいっています。このフォーム情報はすべて div 内に配置されます。

私は最近、ユーザーが別の本や複数の本を追加できるように、div 内のすべてのフォーム データを複製する単純な JS の「複製」機能を実装しました。問題は、複製した元の div のすべての名前の値が変更されていないか、複数の値を含める必要があることを受け入れていないことです。

各「本」に独自の値を持たせるにはどうすればよいですか? 各入力の名前は配列 (例: book[0]['price']) で、別の div が追加されるたびに JS は名前を変更します (例: book[1]['price'])?

それがうまくいくかどうか本当にわからないので、私はこれを尋ねています。フォームが機能している(すでに機能している)方法を変更する前に、より経験豊富な意見を聞きたいです。さらに情報が必要な場合は、お問い合わせください。提供します。

4

2 に答える 2

1
<div id="book1">
<input type="text" name="price[]" id="price1" />
<input type="text" name="isbn[]" id="isbn1" />
</div>

これを複製し、js を使用して ID のみを更新します (各 ID は一意である必要があるため)。

<div id="book2">
<input type="text" name="price[]" id="price2" />
<input type="text" name="isbn[]" id="isbn2" />
</div>

これ$_POST['price']で、価格の配列が表示され、対応する isbn の各要素がその本の isbn を表示するはずです

サーバー側は次のようになります。

$price = $_POST['price'];
$isbn = $_POST['isbn'];

foreach( $price as $key => $value ) {
  echo "The price is ".$value." and isbn is ".$isbn[$key];
}

これは私が行く1つの方法です..

于 2012-07-10T20:26:13.223 に答える
1

HTML フォームで割り当てる名前は、配列にすることができます。例: 価格[]

<input type="text" name="price[]">

'price[]' という名前のフォーム入力が複数ある場合でも問題ありません。実際、これは便利です。

PHPでは、次を使用して各名前に簡単にアクセスできます

$_POST['price'][$i] //where $i is 0,1,2,3.....

基本的にこれが行うことは、$_POST 配列の下に「価格」の配列を作成することです。$i を簡単に反復して、他のフィールドの値も取得できます。

これは、「または、複数の値を含める必要があることを受け入れていない」というあなたの声明に答えます。

于 2012-07-10T20:27:44.853 に答える