我有一个名为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/