我的js文件中有一个数组。在用户选择了他喜欢的座位后,数组中的数据创建就完成了。
然后我将它发送到php文件进行显示.javascript代码如下所示。
$('#btnsubmit').click(function(ev) {
ev.preventDefault();
var seat = [], item;
$.each($('#place li.' + settings.selectingSeatCss + ' a'), function (index, value) {
item = $(this).attr('title');
seat.push(item);
});
var bookseats = seat;
$.ajax({
type: 'POST',
url: 'confirm.php',
data: {'bookseats': bookseats}
}).then(function(data) {
alert(data);
window.location='confirm.php';
},function(err){
alert('error');
});
发送此数据时,我已发出警报(数据)功能,以查看值是否正确传递。下方是警报的屏幕截图。
警告清楚地告诉我们数组已经传递到php页面。但是在我的php页面中,没有显示数组的数据。它显示错误“无效的参数”。
这是我的PHP代码。
$bookseats = "";
if(isset($_POST['bookseats']))
{
$bookseats = $_POST["bookseats"];
}
print_r($bookseats);
$seatar = implode(',', $bookseats);
echo 'Booked Seats : '.$seatar.'<br>'.'<br>';
这是用于将数据插入数据库的php代码。
$bookings_added = $conn->query($sql);
$last_bid = $conn->insert_id;
for($i = 0; $i < count($bookseats); $i++){
$SQL_project_has_type = "INSERT INTO bookseat (seat, bid)
VALUES({$bookseats[$i]}, ".$last_bid.")";
$bs = $conn->query($SQL_project_has_type);
if($bs === FALSE) exit("mysql error: ".$conn->error);
}
我的阵列有什么问题吗?请帮忙!
答案 0 :(得分:1)
在HTML中,我添加了一个隐藏的输入来保存所选座位的值。
在js代码中,添加了一个语句,用于设置添加的隐藏输入的值。
同样在成功的ajax上,使用jquery
提交触发器以POST方法提交表单以及新值。
<强> HTML:强>
<form method="POST" id="bookseatform" action="confirm.php">
<input type="hidden" value="" name="bookseats"/>
<div align="center"><input type="Submit" id="btnsubmit" value="Submit" /></div>
</form>
<强> JS:强>
$('#btnsubmit').click(function(ev) {
ev.preventDefault();
var seat = [], item;
$.each($('#place li.' + settings.selectingSeatCss + ' a'), function (index, value) {
item = $(this).attr('title');
seat.push(item);
});
var bookseats = seat;
$('input[name="bookseats"]').val(seat);
$.ajax({
type: 'POST',
url: 'confirm.php',
data: {'bookseats': bookseats}
}).then(function(data) {
//alert(data);
$('#bookseatform').trigger('submit');
},function(err){
alert('error');
});
});
<强> PHP:强>
if(isset($_POST['bookseats'])){
$bookseats = $_POST["bookseats"];
if(is_array($bookseats)){
print_r($bookseats);
$seatar = implode(',', $bookseats);
}
else {
$seatar = $bookseats;
}
}
echo 'Booked Seats : '.$seatar.'<br>'.'<br>';