2009-08-24 17 views
1

2つの異なる値を1つのajax-responseで更新したい。2つの異なる値を1つのAJAX応答で更新する

<span id="nr1">Change this</span> 
<span id="nr2">and change this</span> 

今、私はちょうど私がこのように行う、一つの値を変更することができます。

document.getElementById('nr1').innerHTML = xmlHttp.responseText; 

はこのような何かすることが可能です:

document.getElementById('nr1').innerHTML = xmlHttp.responseText1; 
document.getElementById('nr2').innerHTML = xmlHttp.responseText2; 

**** UPDATEを** ** 応答はPHPから来ます。 JSONは全く新しいです。

+0

私は応答してPHP JSONライブラリへのリンクを追加しました。 json_encodeを持つPHPサイトには、いくつかの非常に良い例があります。 – ryanday

答えて

4

は、ちょうどresponseText(私はあなたのXMLHTTPであると仮定)XMLHTTPRequestをのないresponseText1とresponseText2プロパティはありませんので、あなたは(JSONのような)そのresponseTextフィールドに解析可能な何かを返すことがあります。したがって、サーバーは{"firstResponse": "value1"、 "secondResponse": "value2"}を返信し、そのJSON文字列からフィールドを入力することができます。あなたがPHP JSON librariesを使用する必要がありますPHPから、このJSONレスポンスを作るために :

<script type="text/javascript" src="json2.js"></script> 
. . . 
var theResponse = JSON.parse(xmlHttp.responseText); 
document.getElementById('nr1').innerHTML = theResponse.firstResponse; 
document.getElementById('nr2').innerHTML = theResponse.secondResponse; 

EDITをはjson.orgからjson2.jsライブラリを使用してください。 json_encode pageにはいくつかの例があります。私が掲示した(そして他の回答に掲載されている)他のコードは、すべてブラウザ側のjavascriptコードです。あなたのPHPスクリプトにコードが続いてJSON文字列

{"firstResponse":"value1","secondResponse":"value2"} 

を生成する

$arr = array ('firstResponse'=>'value1','secondResponse'=>'value2'); 
echo json_encode($arr); 

場所は、以前にJavaScriptコードがそれを解析します投稿しました。

+0

私はあなたが言うようにしようとします。私は、php:{"firstResponse": "value1"、 "secondResponse": "value2"}から適切な応答を得ます。しかし、スパンnr1またはnr2には何も印刷されません。私が間違って何を考えている? – Johan

+0

json.orgからhttp://www.json.org/json2.jsからjson2.jsをダウンロードし、.parseJSON()の代わりにJSON.parse(xmlHttp.responseText)を使用します。私は会社の内部が長すぎるのに悩まされてきました。 – ryanday

+0

私のコメントを反映するようにコードを更新しました – ryanday

1

サーバーを信頼して制御する場合は、応答のためにJSONに辞書を戻してクライアント側で使用してください。だから、:

v = eval(xmlHttp.responseText); 
document.getElementById('nr1').innerHTML = v['nr1'] 
document.getElementById('nr2').innerHTML = v['nr2'] 
+0

私は穴の画像を得るかどうかわかりません。私はPHPを使用します。 PHPがどのように見えるかの例を教えていただけますか? – Johan

0

すでに述べたように、Ajaxの呼び出しをJSONオブジェクトとして返すのは意味があります。より安全なJSONP呼び出しを推奨します(これをネイティブにサポートするライブラリを使用できるかどうかはわかりません)。

// Your script returns this 
callback123(
{ 
    "nr1" : "This is conten for nr1", 
    "nr2" : "Some content for nr2" 
}); 

// JavaScript callback looks like this 
function callback123(data) 
{ 
    for(var key in data) 
     document.getElementById(key).innerHTML = data[key]; 
} 
関連する問題