我有一个名为seat的JavaScript数组,其中包含许多值。

如下所示,我已序列化发送到名为Confirm.php的php文件。

$('btnsubmit').click(function() {
  var seat = [];
  var seatar = JSON.stringify(seat);
  $.ajax({
    method: "POST",
    url: "confirm.php",
    data: seatar
  })
})


这是我的php文件中的代码。

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


我已尽我所能,尝试了本节中先前提出的问题。但是,无论我多么努力地修复它,此代码都永远无法工作。为什么不?

最佳答案

您只是发送原始的JSON,但是您期望获得一个带有data字段的URI编码形式。如果将ajax调用更改为使用data: {data: seatar},则可以得到:

$('btnsubmit').click(function() {
  var seat = [];
  var seatar = JSON.stringify(seat);
  $.ajax({
    method: "POST",
    url: "confirm.php",
    data: {data: seatar}
  })
});


jQuery会自动将该对象转换为带有单个字段的URI编码提交。

如果要在服务器上解析,请使用json_decode

if(isset($_POST['data']))
{
    $seatarr = json_decode($_POST["data"]);
    print_r($seatarr);
}


另外,作为Mr. Blue pointed out,您的按钮选择器可能不正确。您有$('btnsubmit')正在寻找<btnsubmit>...</btnsubmit>元素。您可能是指$("#btnsubmit")(如果按钮上有id="btnsubmit")或$("[name=btnsubmit]")(如果按钮上有name="btnsubmit")。

关于javascript - 如何发送序列化数组到php文档?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/50113726/

10-13 03:13