[英]How to access return data of jQuery.ajax() sent to php script
我正在使用以下jquery ajax調用:
$(document).ready(function () {
submitAct();
function submitAct(){
var alldata = [];
alldata.push( {
"pid": 'd2a7d886-6821-3eaa-079f-fbe278c6a16a',
"title": 'Fun with Gophers',
});
$.ajax({
dataType: "jsonp",
type: 'POST',
url: '//[server path]/act',
data: "data=" + JSON.stringify(alldata),
});
}
});
在服務器上,$ _POST [data]的結果顯示為:
[{"pid":"d2a7d886-6821-3eaa-079f-fbe278c6a16a","title":"Fun with Gophers"}]
我無法訪問“pid”和“title”的鍵和相關值。 有人請提供一些見解嗎? 我嘗試過類似下面的東西,但沒有取得任何成功:
$_POST['title']
$data = json_decode( $_POST['data']);
$data->title
謝謝!
幾點建議:
首先,您不必要地將數據對象包含在數組中。 要立即訪問它:
$data = json_decode( $_POST['data']);
$data=$data[0];/* access object in array*/
$data->title;
$ .ajax的默認內容類型是application/x-www-form-urlencoded; charset=UTF-8
application/x-www-form-urlencoded; charset=UTF-8
...與發送常規表單完全相同。 您可以將數據對象中的每個鍵視為表單控件的name
。
無需JSON.stringify發送。 jQuery將為您序列化對象和數組
您可以像這樣發送它:
var alldata = {
"pid": 'd2a7d886-6821-3eaa-079f-fbe278c6a16a',
"title": 'Fun with Gophers',
};
$.ajax({
dataType: "jsonp",
type: 'POST',
url: '//[server path]/act',
data: alldata
});
然后在PHP中:
$title=$_POST['title'];
將ajax請求的data
部分更改為以下內容:
$.ajax({
dataType: "jsonp",
type: 'POST',
url: '//[server path]/act',
data: {"data": JSON.stringify(alldata)},
});
現在,您可以通過相應的php文件中的$_POST["data"]
訪問發送的內容。
例:
$json = json_decode($_POST["data"]);
var_dump($json[0]->{"title"}); // [0] because of the array
$a = json_decode($_POST['data']);
print_r($a[0]->pid);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.