[英]How to send a serialized array to a php document?
我有一個名為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,但是您期望獲得一個URI編碼的表單,其中包含一個data
字段。 如果將ajax
調用更改為使用data: {data: seatar}
,則可以得到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);
}
另外 ,正如Blue先生指出的那樣 ,您的按鈕選擇器可能不正確。 您有$('btnsubmit')
正在尋找<btnsubmit>...</btnsubmit>
元素。 您可能是指$("#btnsubmit")
(如果按鈕上有id="btnsubmit"
)或$("[name=btnsubmit]")
(如果按鈕上有name="btnsubmit"
)。
另一個解決方案可以是像這樣重寫數據:
seatar = $(this).serialize() + "&" + $.param(seatar);
並像TJ Crowder的建議那樣進行解碼:
if(isset($_POST['data']))
{
$seatarr = json_decode($_POST["data"]);
print_r($seatarr);
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.