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

时间:2018-05-04 03:57:51

标签: javascript php html mysql arrays

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

selection of seats,and data creation in the array

然后我将它发送到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');
    });

发送此数据时,我已发出警报(数据)功能,以查看值是否正确传递。下方是警报的屏幕截图。alert

警告清楚地告诉我们数组已经传递到php页面。但是在我的php页面中,没有显示数组的数据。它显示错误“无效的参数”。

PHP display

这是我的PHP代码。

$bookseats = "";

if(isset($_POST['bookseats']))
    {
        $bookseats = $_POST["bookseats"];       
    }

print_r($bookseats);

$seatar = implode(',', $bookseats);
echo 'Booked Seats : '.$seatar.'<br>'.'<br>';

当我尝试将此数组保存在数据库中时,会显示以下错误。Database insertion error

这是用于将数据插入数据库的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);
}

我的阵列有什么问题吗?请帮忙!

1 个答案:

答案 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>';