2011-01-04 11 views
23

私はこのjQueryのコードを使用しています:複数の戻り値

$.ajax 
({ 
    type: "POST", 
    url: "customerfilter.php", 
    data: dataString, 
    cache: false, 
    success: function(html) 
    { 
     $(".custName").html(html); 
    } 
}); 

私はこのような何か行うことができます方法:$(".projDesc").html(html1); をだから私は2つのHTML要素に返された結果を分割することができますか?

私が使用しているPHPのthats
echo "<p>" .$row['cust_name']. "</p>"; 

と私は別のHTML要素

このメイクセンスをいに入れることができます別のステートメントをエコーし​​たいですか?

答えて

54

json_encode()を使用して、PHPからJSONへの連想配列を変換し、$.getJSON()を使用すると、JavaScript配列が返されます。

例:JavaScriptで

<?php echo json_encode(array("a" => "valueA", "b" => "valueB")); ?> 

$.getJSON("myscript.php", function(data) { 
    alert("Value for 'a': " + data.a + "\nValue for 'b': " + data.b); 
}); 
+0

恐ろしい! :)ありがとうございます。 – drpelz

+1

ajax投稿のsuccess関数内で.getJsonを使用するのか、それとも完全に別のものを使用しますか? – Arken

+0

@Arkenあなたは何を意味するのか分かりません。 'getJSON()'は、デコードされたデータを引数として受け取るURLと成功ハンドラ関数を取ります。要求がすでに実行されているので、ハンドラで再度呼び出す必要はありません。 –

3

JSONオブジェクトを返さないのはなぜですか。このようにして、ajaxレスポンス内にさまざまな結果を簡単に入れることができます。

41

あなたの応答リターンJSONは、あなたがこれまであなたのjQueryを変更する必要があります確認し、そう期待データ型はJSONです:

$.ajax 
({ 
    type: "POST", 
    url: "customerfilter.php", 
    dataType: 'json', 
    cache: false, 
    success: function(data) 
    { 
     $(".custName").html(data.message1); 
     $(".custName2").html(data.message2); 
    } 
}); 

JSON配列としてレスポンスをエンコードする必要があります。

<?php echo json_encode(
     array("message1" => "Hi", 
     "message2" => "Something else") 
) ?> 
+0

データ:json、 データ型にする必要があります: "json"しかし、ありがとう! – benhowdle89

+0

修正しました、ありがとうございます。 –

+1

dataType: 'json'にする必要があります。あなたは引用符がありません。 – Stephen305