implode:invalid arguments 在阵列中?

rbl8hiat  于 2021-06-21  发布在  Mysql
关注(0)|答案(1)|浏览(262)

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

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

$('#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(data)函数来查看值是否正确传递。

警报清楚地告诉我们数组已经被传递到php页面。但是在我的php页面中,没有显示数组的数据。并且它显示了一个错误,称为“invalid arguments”。

这是我的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);
}

我的阵法有问题吗?请帮帮我!

sgtfey8w

sgtfey8w1#

在html中,我添加了一个隐藏的输入来保存所选座位的值。
在js代码中,添加了一条语句,为添加的隐藏输入设置值。
同样在成功的ajax上,表单也是在post方法中提交的,并使用 jquery 提交触发器。
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>';

相关问题