入力テキスト フィールドを動的に追加するために jQuery プラグインを使用しています。name
入力要素のはname="cl[]"
、 になりname="ingredient[]"
ます。
これらのフィールドを何らかの方法でデータベースに送信する必要があります...追加する必要があるテキスト フィールドが 1 つしかない場合は、次のような単純なループを
実行するだけでよいと思います。foreach
foreach($ingredient as $val){
// do an ordinary PDO sql insert statement on each of them
}
しかし、2 つのテキスト フィールドと、前のクエリから最後に挿入された ID をそれぞれに送信する必要があります。2 つのフィールドを追加すると、合計で 3 つのフィールドが送信されます。このような:
<input type="text" name="oz[]" id="cl_1" placeholder="cl" class="cl" >
<input type="text" name="ingredient[]" id="ingredient_1" placeholder="ingredient name" class="ingredient" />
<input type="text" name="oz[]" id="cl_2" placeholder="cl" class="cl" >
<input type="text" name="ingredient[]" id="ingredient_2" placeholder="ingredient name" class="ingredient" />
<input type="text" name="oz[]" id="cl_3" placeholder="cl" class="cl" >
<input type="text" name="ingredient[]" id="ingredient_3" placeholder="ingredient name" class="ingredient" />
これらのフィールドは、別のテーブルに挿入される飲み物の材料であり、最後の ID は関係キーです。
これを達成する方法について何か提案はありますか?
更新: 名前の付いた非表示のテキスト フィールドを追加し、raw_materials[]
そのフィールドで ẁhile` ループを実行しようとしました。
次に、この while ループ内で sql insert ステートメントを実行します。多分私は何かに取り組んでいますが、これはうまくいきませんでした:
while($raw_materials){
$ins_ingredients = $con->prepare(
'INSERT INTO recipes_ingredients (
recipe_id, raw_material_id, amount
) VALUES (
:last_id, :material, :amount
)'
);
$ins_ingredients->bindValues(':last_id',$last_id);
$ins_ingredients->bindValues(':material',$ingredient);
$ins_ingredients->bindValues(':amount',$oz);
$ins_ingredients->execute();
}