2011-07-06 7 views
6

私は使っています:echo json_encode($ Response);連想配列をJQuery Ajaxに送り返す。各IDキーの値を読み取ろうとすると、私は未定義の値を取得します。私はそう間違ってやっているかを把握助けて...事前に感謝JQueryから 'echo json_encode()'を読む正しい方法

私のPHPコードしてください:

$Stuff = 'Hello world'; 

$Success = true; 
$Content = $Stuff; 

$Response = array('Success' => $Success, 'Content' => $Content); 
echo json_encode($Response); 
# #

私のJSコード:

var sFirstName  = $('#student_first_name').attr('value'); 

$.ajax({ 
    type: "GET", 
    url: "../pgs/UpdateEditAStudent.php", 
    data: "FirstName="+ sFirstName , 

    //The below code will give me: {"Success":true,"Content":"Hello world"} 
    success: function(data){$("#Ajax_response").html(data);} 

    //The popup window will show me "Undefined" 
    //and: {"Success":true,"Content":"Hello world"} 
    success: function(data){$("#Ajax_response").html(data); alert(data.Content);} 
}); 

答えて

1

にです配列。あなたはおそらくアラートを行うべきです(data ['Content']);.

+0

ような何か? – Niklas

9

また、this questionによると、application/jsonのMIMEタイプを設定する必要があります。次に、jQueryはその答えがjson要素であることを理解します。何かを印刷する前に、あなたのUpdateEditAStudent.php

header('Content-Type: application/json'); 

:それを行うには、次のようにしてください。

+0

@ルンベニル。どうもありがとうございました。 Niklaasが示唆したように、$ .ajax dataType: "json"に正しいデータ型を定義することと比べて、あなたのソリューションの利点は何ですか? – SirBT

+0

「UpdateEditAStudent.php」の正確さは、Apache(またはWebサーバが何であれ)が、真のMIMEタイプではなく、指定されたURLがHTMLページ(MIMEタイプ 'text/html')であることを誰にも伝えているので、これは 'application/json'です。 – Lumbendil

2

正確なdataTypeを定義するか、記載されているような正しいヘッダーを指定する必要があります。

あなたは手動であなたのコードは次のようになりますので、jsondataTypeを定義することができます。

:ちょうどこのJquery parseJSON functionを使用し、

$.ajax({ 
    type: "GET", 
    url: "../pgs/UpdateEditAStudent.php", 
    data: "FirstName="+ sFirstName , 
    dataType: "json", 
    ...etc 
+0

これは私にとって非常にうまくいきました!素晴らしい! :-D – SirBT

4

あなたがPHPファイルにヘッダを追加する必要はありませんそれがあるとして、このPHPコードを保持:

$Stuff = 'Hello world'; 

$Success = true; 
$Content = $Stuff; 

$Response = array('Success' => $Success, 'Content' => $Content); 
echo json_encode($Response); 

そしてJS用:

$.ajax({ 
    type: "GET", 
    url: "../pgs/UpdateEditAStudent.php", 
    data: "FirstName="+ $('#student_first_name').val(), 

    success: function(data){ 
     // Here is the tip 
     var data = $.parseJSON(data); 

     alert(data.Content); 
    } 
}); 
0

Javascriptが `キー=>値でarrays`この

$Stuff = 'Hello world'; 

$Success = true; 
$Content = $Stuff; 

$Response = array('Success' => $Success, 'Content' => $Content); 
echo json_encode($Response); 
+0

彼はJQueryのエンコードについて尋ねました。あなたはPHPから配列の例を挙げました。彼はすでにそれをやった。 –

+0

bot 91203 no-reply – asdasd

関連する問題