我正在使用 jQuery 插件来动态添加输入文本字段。name
输入元素的变为name="cl[]"
, name="ingredient[]"
。
现在我需要以某种方式将这些字段提交到数据库......
如果只有一个应该添加的文本字段,我想我可以foreach
像这样做一个简单的循环:
foreach($ingredient as $val){
// do an ordinary PDO sql insert statement on each of them
}
但我需要在每个字段上提交两个文本字段,以及上一个查询中最后插入的 ID。如果我添加两个字段,我将总共提交三个字段;像这样:
<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`-loop。
然后在这个 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();
}