簡體   English   中英

如何發送序列化數組到php文檔?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM