簡體   English   中英

如何訪問發送到php腳本的jQuery.ajax()的返回數據

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

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