我的动态输入表单存在问题。它适用于我们新的Adminportal(我们可以在那里管理我们的餐饮) 所以动态形式看起来像这样:
...Add Row</button>
<br />
<div class="rowFields<?= $id; ?>">
<div>
<input type="text" name="newMealName[]" placeholder="Name" style="width:30%"/>
<input type="text" name="newMealDescription[]" placeholder="Description" style="width:50%" />
<input type="number" step="0.01" name="newMealPrice[]" placeholder="0.01" style="width:15%" />
<a href="#" id="remove_row">Remove</a>
</div>
</div>
我正在添加更多行或通过JQuery删除它们 - 这很好。 我正在使用我的Ajax脚本传递表单,我正在使用其他插入到我们的数据库 - 这是有效的!
我的PHP插入脚本看起来像这样:
<?php
...
$nameArray = $_POST['newMealName'];
$descriptionArray = $_POST['newMealDescription'];
$priceArray = $_POST['newMealPrice'];
$sqlAddNewMeals = $db->prepare("insert into tableX(name, description, price) values(?, ?, ?)");
for($i = 0; $i<sizeof($nameArray); $i++)
{
$sqlAddNewMeals->bind_param('ssd', $_POST['newMealName'][$i], $_POST['newMealDescription'][$i], $_POST['newMealPrice'][$i]);
$sqlAddNewMeals->execute();
}
$sqlAddNewMeals->close();
?>
我尝试过使用
$sqlAddNewMeals->bind_param('ssdi', $nameArray[$i],...
但这也不起作用。 我有最后一个想法,但在此之前想与你讨论: 我是否必须绑定诸如$ name,$ description之类的params并使用类似的for循环:
forloop {
$name=$nameArray[1];
...
$sql->execute(); }
提前致谢, pl44
编辑1: AJAX传递表格
$(function () {
$("button#addNewMeals").click(function () {
var menu_id = $(this).val();
$.ajax({
type: "POST",
url: "XXX/add-new-menu.php",
data: $('form.manageMenu-'+menu_id).serialize(),
success: function () {
alert("Added.");
},
error: function () {
alert("failure");
}
});
});
});
答案 0 :(得分:0)
<?php
$nameArray = $_POST['newMealName'];
$descriptionArray = $_POST['newMealDescription'];
$priceArray = $_POST['newMealPrice'];
$sqlAddNewMeals = $db->prepare("insert into tableX(name, description, price) values(?, ?, ?)");
$param = array();
for($i = 0; $i<sizeof($nameArray); $i++)
{
$param[$i]['newMealName'] = $_POST['newMealName'][$i];
$param[$i]['newMealDescription'] = $_POST['newMealDescription'][$i];
$param[$i]['newMealPrice'] = $_POST['newMealPrice'][$i];
}
print_r($param);
?>
答案 1 :(得分:0)
我试图自己解决这个问题。我用这个逻辑:
现在正在努力。谢谢大家!!