Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/377.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 内爆:数组中的参数无效?_Javascript_Php_Html_Mysql_Arrays - Fatal编程技术网

Javascript 内爆:数组中的参数无效?

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

我在我的js文件中有一个数组。在用户选择他喜欢的座位后,数组中的数据创建就完成了

然后我将其发送到一个php文件中进行显示

$('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)
有效地说,如果值是一个字符串,该字符串将成为新数组中唯一的索引元素……但从我看来,我希望是一个数组。