1

PHP によって作成された配列を取得し、ajax 経由で JS スクリプトに送り返そうとしています。

値の表示方法がわかりません。

サーバーサイドphp

 $r=array();
 $r[] = 'aaa';
 $r[] = 'bbb';
 $r[] = 'ccc';


echo json_encode($r);

私のJS

....ajax codes....

var p=document.getElementById('text');

if (xmlhttp.readyState==4 && xmlhttp.status==200){

    var r=xmlhttp.responseText;

   for (var i=0; i<r.length; i++){
        p.innerHTML= r[i] + '<br>';
   }

}

出力は次のようになります。

a
a
a
b
b
b
c
c
c
//but I want these
aaa
bbb
bbb

これを完了するには、$.ajax の代わりに JavaScript を使用したいと考えています。何か案は??どうもありがとう。

4

2 に答える 2

3

サーバーからクライアントに配列を転送する最も簡単な方法は、JSON を使用することです。以下を使用して、JSON で配列をエコーできます。

echo(json_encode($array));

詳しくはこちらをご覧ください。

次に、クライアント側で次の関数を使用して JSON をデコードし、同じ配列を生成できます。

decodedjson = JSON.parse(ajax.response);

クライアント側のコードを ajax 呼び出しでラップすることを忘れないでください。

お役に立てれば!

于 2012-07-06T07:07:43.240 に答える
2

JSON.parseなどを使用して、事前に json 文字列を解析する必要があります。試してください(未テスト):

if (xmlhttp.readyState==4 && xmlhttp.status==200){
    var r=JSON.parse(xmlhttp.responseText);
    for (var i=0; i<r.length; i++){
        p.innerHTML= r[i] + '<br>';
    }

===更新===

非常に古いブラウザ (IE7 以下など) をサポートする必要がある場合は、Crockfords JSON2parserjQuery (より多くの機能を備えた巨大なライブラリ) などのライブラリを使用する必要があります。

于 2012-07-06T07:04:34.357 に答える