0

私は現在、次のことをしようとしています:

  1. image.js コードから PHP ファイルをリクエストする
  2. リクエスト呼び出しで - 私の mysql データベースからデータをクエリし、それを PHP 配列に保存します
  3. 配列を JSON オブジェクトとして image.js に返します。

私は nr 1 + nr 3 をカバーしました -私が苦労しているのは、データベース属性を PHP 配列に正しく保存し、その後 json コールバックから各レコードを反復処理する方法です。

データベース属性の例:

player_id (unique key) || player_name || player_country || player_image || player_league ||

質問/課題 1:配列の保存 (これはよくわかりません)

while ($row = mysql_fetch_assoc($res))
{
    $myCallbackArray[] = array($row['player_id'], $row['player_name'], $row['player_country'], $row['player_image']);
}

- 次の配列は、対応するすべての属性を個別に保存することに基づいて、次元のない 1 つの「フラット配列」になりplayer_idますか?

いくつかのコンテキストを提供するために、配列が正常であると仮定して、「次のステップ」でそれをJSに送り返します

$callback = $myCallbackArray;
echo json_encode(array('returned_val' => $callback));

質問/課題 2 : JS で配列値にアクセスする (これはよくわかりません)

      //Save the data
    var url = "request.php"; //

      var request = $.ajax({
             type: "POST",
             url: url,
             dataType: 'json',
             data: { user_id: id},

             success: function(data)
             {

//HERE WE HANDLE THE RETURNED ARRAY
if(data.returned_val) {

                  for( var i = 0; i < data.returned_val.length; i++ ){
//HERE I WOULD LIKE TO MAKE THE DIFFERENT ATTRIBUTES ACCESSABLE
                  } 
             },
             error:function() {
                //FAILURE
            }   

});
return false;

-したがって、この部分では、PHP から多次元配列を実際に処理する方法がわかりません。それをJavascript配列に保存する必要があると思います。そうすれば、おそらくforeachループを介して各値を反復/アクセスできますが、もう一度言いますが、どうして完全に確信が持てないのでしょうか?

4

2 に答える 2

0

成功関数でデータに間違ってアクセスすると、データは配列として返されます。以下に例を示します。

var request = $.ajax({
    type: "POST",
    url: url,
    dataType: 'json',
    data: {user_id: id},
    success: function(data){

        var myval = data["returned_val"];

        alert(myval);

    },
    error:function() {
        //FAILURE
    }
});
于 2013-08-26T22:03:45.497 に答える
0

json_encode を使用することをお勧めします。

$myCallbackArray []= (object) array(
    "player_id" => '...',
    "player_name" => '...',
    "player_country" => '...',
    "player_image" => '...',
    "player_league" => '...'
);

$json = json_encode($myCallbackArray);

$json は実際には次のとおりです。

[{"player_id":"...","player_name":"...","player_country":"...","player_image":"...","player_league":"..."}]

これは有効な JSON であり、JavaScript で簡単に使用できます。

于 2013-08-26T21:45:31.690 に答える