1
 Array
(
    [0] => Array
        (
            [sno] => 1
            [name] => Sivamani
            [contact] => 750241378
            [$city] => Madurai
        )

)

Array
(
    [1] => Array
        (
            [sno] => 2
            [name] => Guru
            [contact] => 1111111111
            [$city] => Chennai
        )

)

これは私のphp print_r配列です。配列の長さを取得し、これらをループしてjavascriptで印刷するにはどうすればよいですか

4

4 に答える 4

2

最良の方法はjson_encodeです。

PHP > JS:

echo json_encode($array);

JSで:

var array = phpString;

基本的に、PHP では、ページの生成中に次のように追加します。

echo '<script type="text/javascript"> var phpArray = <?= json_encode($yourArray);?>;</script>';

そして、PHP配列はグローバル(悪)変数として利用可能になります...JSモジュールで値をエコーし​​、より制御された方法で公開することもできます...しかし、詳細についてはグーグルで検索してください.. .

とにかく、これを行った後:

console.log(phpArray.length);
for (var i=0;i<phpArray.length;i++)
{
    //assoc arrays are objects in JS, hence:
    for(var j in phpArray[i])
    {
        if (phpArray[i].hasOwnProperty(j))
        {
            console.log(j + ' => ' + phpArray[i][j]);
        }
    }
}
于 2013-06-24T13:01:39.983 に答える
0

代わりにPHP json_encode関数を使用しています。したがって、コードは次のようになります。

echo json_encode($YOUR_ARRAY);

クライアント側では、文字列を解析する必要があり、配列を取得します。私は通常、そのためにjQueryを使用します。AJAX によるリクエストは次のようになります。

$.post(SCRIPT_URL, POST_PARAMS,
    function(response) {
    // YOUR ACTIONS HERE - response is your parsed ARRAY
    },
   'json'
);

jQuery.post メソッドの詳細については、こちらを参照してください。

于 2013-06-24T13:11:03.230 に答える
0

console.logコンソールに出力するために使用できます: (これはデバッグ用です)

var a = [1, 2, 3];
console.log(a); // [1, 2, 3]

配列/オブジェクトを文字列にしたい場合は、次を使用できますJSON.stringify: (これはフロントエンドからバックエンドにデータを転送する良い方法です)

var a = [1, 2, 3];
JSON.stringify(a); // "[1, 2, 3]"

また、文字列化をきれいにしたい場合は、3.引数を使用して次のことができますJSON.stringify

JSON.stringify(obj, handler, spaces);
JSON.stringify([1, 2, 3], null, "\t");
JSON.stringify([1, 2, 3], null, "    ");
JSON.stringify([1, 2, 3], null, 2); 
于 2013-06-24T12:59:51.903 に答える
0

これを試して:

 var data = new Object();
    data["firstname"] = "John";
    data["lastname"] = "Bhutt";
    data["age"] = 29;

    alert(data.toSource()); //Will return "({firstname:"John", lastname:"Smith", age:21})"
于 2013-06-24T13:02:23.487 に答える