Javascript 内爆:数组中的参数无效?
我在我的js文件中有一个数组。在用户选择他喜欢的座位后,数组中的数据创建就完成了 然后我将其发送到一个php文件中进行显示Javascript 内爆:数组中的参数无效?,javascript,php,html,mysql,arrays,Javascript,Php,Html,Mysql,Arrays,我在我的js文件中有一个数组。在用户选择他喜欢的座位后,数组中的数据创建就完成了 然后我将其发送到一个php文件中进行显示 $('btnsupmit')。单击(函数(ev){ ev.preventDefault(); var席位=[],项目; $.each($('#place li.'+settings.selectingSeatCss+'a'),函数(索引,值){ item=$(this.attr('title'); 座椅。推(项); }); 座位=座位; $.ajax({ 键入:“POST
$('btnsupmit')。单击(函数(ev){
ev.preventDefault();
var席位=[],项目;
$.each($('#place li.'+settings.selectingSeatCss+'a'),函数(索引,值){
item=$(this.attr('title');
座椅。推(项);
});
座位=座位;
$.ajax({
键入:“POST”,
url:'confirm.php',
数据:{'bookseats':bookseats}
}).then(功能(数据){
警报(数据);
window.location='confirm.php';
},函数(err){
警报(“错误”);
});
在发送这些数据时,我制作了一个警报(数据)函数,以查看值是否正确传递。下面是警报的屏幕截图
警报清楚地告诉我们数组已经传递到php页面。但是在我的php页面中,没有显示数组的数据。它显示一个错误,说“无效参数”
这是我的php代码
$bookseats = "";
if(isset($_POST['bookseats']))
{
$bookseats = $_POST["bookseats"];
}
print_r($bookseats);
$seatar = implode(',', $bookseats);
echo 'Booked Seats : '.$seatar.'<br>'.'<br>';
$bookseats=”“;
如果(isset($_POST['bookseats']))
{
$bookseats=$\u POST[“bookseats”];
}
印刷(书桌);
$seatar=内爆(“,”,$bookseats);
echo“预订座位:”.$seatar.“
”.
”;
当我试图将此数组保存到数据库中时,会显示以下错误
下面是将数据插入数据库的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);
}
$bookings\u added=$conn->query($sql);
$last\u bid=$conn->insert\u id;
对于($i=0;$iquery($SQL\u项目\u具有\u类型);
如果($bs==FALSE)退出(“mysql错误:.$conn->error”);
}
我的数组有问题吗?请帮助!在HTML中,我添加了一个隐藏的输入来保存所选座位的值 在js代码中,添加了一条语句,为添加的隐藏输入设置值 同样在成功的ajax中,使用
jquery
submit触发器在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>
$('#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');
});
});
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>';
PHP:
<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>
$('#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');
});
});
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>';
if(isset($\u POST['bookseats'])){
$bookseats=$\u POST[“bookseats”];
if(is_数组($bookseats)){
印刷(书桌);
$seatar=内爆(“,”,$bookseats);
}
否则{
$seatar=$bookseats;
}
}
echo“预订座位:”.$seatar.“
”.
”;
Yes to confirm.phpIf如果您不需要js代码中的ajax部分,这也是一个很好的选择。:o:o:o:o:o:o:of yi,您可以避免is_数组
conditional,并强制数据类型按如下方式排列:$seatar=introde(',,(array)$bookseats)
有效地说,如果值是一个字符串,该字符串将成为新数组中唯一的索引元素……但从我看来,我希望是一个数组。