我在解决如何通过具有相同名称的项目的ajax提交表单时遇到问题(此表单是动态创建的,并且必须对某些字段使用相同的名称)。
这是我的JS代码
4
我希望它提交到submit.php并隐藏打开的div(table1)。 我可以把它转到submit.php,但我不确定数据是否实际上是在那里发送的,或者它是否只是空白。它告诉我submit.php中的foreach循环有一个无效的参数。
这是submit.php
<script>
var toggle123 = function() {
var chair = document.getElementsByName('chair[]');
var item1 = document.getElementsByName('item[]');
var price = document.getElementsByName('price[]');
var table = document.getElementById('table');
// Returns successful data submission message when the entered information is stored in database.
var dataString = 'table='+table+'';
for(i=0;i<item1.length;i++)
{
dataString += + '& item1[]' + '=' + item1[i];
}
for(i=0;i<chair.length;i++)
{
dataString += + '& chair[]' + '=' + chair[i];
}
for(i=0;i<price.length;i++)
{
dataString += + '& price[]' + '=' + price[i];
}
if (chair == '' || item1 == '') {
}
else {
// AJAX code to submit form.
$.ajax({
type: "POST",
url: "submit.php",
data: dataString,
cache: false,
success: function(html) {
alert(html);
}
});
}
return false;
var mydiv = document.getElementById('table1');
if (mydiv.style.display === 'block' || mydiv.style.display === '')
mydiv.style.display = 'none';
else
mydiv.style.display = 'block'
}
</script>
这是动态表单的javascript ....每次单击一个按钮时,都会添加到表单中:
<?php
include('dbconfig.php');
// Fetching Values From the post method
$table = $_POST['table_id'];
foreach($_POST["item1"] AS $key => $val) {
$chair = $val;
$price = $_POST['price'][$key];
$chair = $_POST['chair'][$key];
$query = mysqli_query($dbconfig,"insert into orders(table_id, price, item, chair) values ('$table', '$price', '$item', '$chair')"); //Insert Query
echo "Form Submitted succesfully";
}
?>
我认为我的主要问题可能是形成传递给submit.php的数据字符串。如果有人能帮我解决这个问题,那就太好了!
(P.S.toggle123通过点击按钮激活(工作正常)