2

for ループがあり、ユーザーが持っているすべての画像の ID と名前を返します。

 $from1 = 1;
 $from2 = 10;

 for ($i=$from1; $i < $from2; $i++) {
     if (($i % 5) == 0) 
     $idTemp = $id1[$i];

     echo $idTemp;
     echo $name[$i];
 }

データをエコーアウトする代わりに、次のように json 応答に配置したいと考えています。

"images":[
    "1":{"id":"1234","name":"thisisaname"},
    "2":{"id":"4332","name":"namename"}
]

しかし、ループ内でjson配列を作成する方法がうまくいかないようです。また、jsonをデコードするためにループスルーするにはどうすればよいですか?

誰でも助けることができますか?事前に助けを求めて乾杯、ジェイミー

4

1 に答える 1

4

サーバー側 (PHP) で json 応答を出力するには、最初に同じ構造を持つ php 配列を作成します。次に、次のようにエンコードできますjson_encode

$from1 = 1;
$from2 = 10;

$json = array('images' => array());
for ($i=$from1; $i < $from2; $i++) {
    if (($i % 5) == 0) {
        $json['images'][$i] = array(
            'id' => $id1[$i],
            'name' => $name[$i]
        );
     }
}

echo json_encode($json);

dataクライアント側 (JS) では、次のようなオブジェクトを受け取ります。

$.getJSON(url, function(data) {
    for (x in data.images) {
        data.images[x].id;
        data.images[x].name;
    }
}
于 2013-03-15T22:56:23.693 に答える