0

jqueryのajaxメソッドを使用して、サーバーにデータを投稿し、応答を返しています。サーバー側のphpコードはjsonでエンコードされた文字列/配列を返しますが、応答はnullとして返されます。

誰かが私が犯している間違いを指摘できますか?以下は、postData.phpページにアクセスするために使用しているjqueryajaxメソッドの場合です。

        $.ajax({
            url:'postData.php',
            type:'POST',
            data:data,
            dataType: "json",
            success: function(response){
                console.log(response);
            }
        });

postData.phpのコンテンツは、私がまだ開発中であるため、非常に単純です。

    $data = array();
//inside postData.php
    $data['test']=1;
    return json_encode($data);

json文字列を返す必要がありますが、nullを返しています。また、$ data配列宣言の直後に文字列をエコーし​​ようとしましたが、firebugでエコーしますが、成功コールバックでconsole.logを実行すると、nullとして返されます。

4

3 に答える 3

3

結果をajax関数に戻すには、次のように、返すのではなく、エコーする必要があります。

$data = array();
$data['test']=1;
echo json_encode($data);
于 2011-05-23T00:57:39.987 に答える
2

postData.phpにあるのはそれだけですか?ある時点でそれをバッファ(echo json_encode($ data);)に書き出す必要があります。

于 2011-05-23T00:56:55.777 に答える
0

morgarが指摘したように、returnを使用せずに、データをエコーバックする必要があります。

$data = array();
$data['test']=1;
echo json_encode($data); //echo instead of return

同時に、ajax on success関数では、配列のように応答にアクセスする必要があります。

**Incorrect**
console.log(response); //--> would return an error

**Should Be**
console.log(response[0]); //--> read the returned first array element
于 2011-05-23T01:07:48.717 に答える