首页 > 解决方案 > 如何将javascript数组发送到php

问题描述

我的javascript文件中有一个名为“seat”的数组。当用户单击剧院布局中的座位时,它用于存储座位号。在我的函数中,我使用窗口警报向用户显示他选择的座位,当他点击确定按钮时,我想将这些预订的座位(我数组中的值)发送到一个名为“确认”的 php 文件。

这是窗口警报

这是javascript函数。

var init = function (reservedSeat) {
    var seat = [], seatNo, className;
    for (i = 0; i < settings.rows; i++) {
        for (j = 0; j < settings.cols; j++) {
            seatNo = (i + j * settings.rows + 1);
            className = settings.seatCss + ' ' + settings.rowCssPrefix + i.toString() + ' ' + settings.colCssPrefix + j.toString();
            if ($.isArray(reservedSeat) && $.inArray(seatNo, reservedSeat) != -1) {
                className += ' ' + settings.selectedSeatCss;
            }
            seat.push('<li class="' + className + '"' +
                      'style="top:' + (i * settings.seatHeight).toString() + 'px;left:' + (j * settings.seatWidth).toString() + 'px">' +
                      '<a title="' + seatNo + '">' + seatNo + '</a>' +
                      '</li>');
        }
    }
    $('#place').html(seat.join(''));
};

$('.' + settings.seatCss).click(function () {
if ($(this).hasClass(settings.selectedSeatCss)){
	alert('This seat is already reserved!');
}
else{
    $(this).toggleClass(settings.selectingSeatCss);
	}
});

$('#btnsubmit').click(function() {
    var seat = [], item;
    $.each($('#place li.' + settings.selectingSeatCss + ' a'), function (index, value) {
        item = $(this).attr('title');                   
        seat.push(item);                   
    });
    window.alert(seat);
	$_POST('confirm.php', {seat: seat})
})
<form method="POST" action="confirm.php"> 
<div align="center"><input type="Submit" id="btnsubmit" value="Submit" /></div>
</form>

这是我的 php 代码。

$seat = "";

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

执行此操作时,我收到窗口警报,但存储在数组中的值不会传递给 php 文件。这段代码有问题吗?请帮忙!我卡在这里了!!!

标签: javascriptphphtml

解决方案


$_POST 不是内置方法,jQuery 也不提供这样的方法——你不能像这样将值“设置”到 $_POST 数组中。

使用 jQuery发布,您需要执行以下操作,包括从服务器返回的数据的处理程序(如果有的话):

$.post("confirm.php", { seat: seat})
 .done(function(data){
          alert('Received data from server: ' + data);
       });

推荐阅读