2010-11-27 14 views
0

私はAJAXとJavascriptで非常に新しいので、このコードで少し助けが必要です。ここでAJAXを使用してHTML入力ボックスにJSONを表示しますか?

は、JSONのビットは、私が

{"URL":"www.youtube.com","Total URLs":132,"Completed":63} 

を使用しているである私は、AJAXを使用して、異なるHTML入力テキストボックス内の各これらの値の1とディスプレイを取得する必要があります。

Current URL: <input type="text" name="urlqueue"> 
Total URLs: <input type="text" name="total"> 
Completed: <input type="text" name="completed"> 

今私はあなたが、これはもう動作しません見ることができます

ajaxRequest.onreadystatechange = function(){ 
    if(ajaxRequest.readyState == 4){ 
    document.form.total.value = ajaxRequest.responseText; 
    } 
} 
ajaxRequest.open("GET", "test_results.php", true); 
ajaxRequest.send(null); 

を持っています。私は1つだけの番号とJSONを含んでいないファイルを持っています。今ではJSONで多くの結果を得るためにファイルを使用する必要があり、何らかの方向性が必要です。

AJAXを使用してHTML入力ボックスにJSONを表示するにはどうすればよいですか?

+1

フレームワークの使用を検討しますか? (jQuery、yuiなど?) – dana

答えて

0

JSON解析ライブラリを使用するか、evalを使用してJSONを解析します。 evalを使用すると、間違って使用された場合にクロスサイトスクリプティングの脆弱性を導入する可能性があるため、非常に危険です。

あなたは、たとえば、によって個別に各フィールドを設定することができますので、結果のオブジェクトは、値があります:あなたはAJAXを作成し、応答を取得するときに、応答テキストは、JavaScriptのオブジェクトではないことを

document.form.total.value = jsonObject["Total URLs"]; 
+0

ええと、私は、evalを使わずにJSONをどのように解析するか正確にはわかりません。 – Chenelle

+0

リードしてくれてありがとう!私は使った – Chenelle

0

注意を。これは単なる文字列なので、JavaScriptオブジェクトの文字列を評価する必要があります。次のコードはそれを素早く生成します。しかし、JavaScriptのマスターであるDouglas Crockfordは、 "eval is evil"と言っています。

 
var data = eval('(' + ajaxRequest.responseText + ')'); 
document.form.total.value = data[Total URLs] 

また、プロパティ名のスペースを避けることを覚えておきたいと思います。たとえば、「Total_URLs」または「TotalURLs」などのプロパティを「Total URLs」の代わりに使用する必要があります。

関連する問題