2013-08-26 27 views
0
迭代

林目前正在嘗試做如下:如何在PHP創建一個二維數組,並通過它使用Javascript

  1. 請求從我image.js代碼
  2. 一個PHP文件在請求調用 - 從我的mysql數據庫查詢數據並將其保存在PHP數組中
  3. 將數組作爲JSON對象返回到image.js。

我NR 1 + NR 3覆蓋 - 與strugling什麼IM是如何拯救我的數據庫正確的屬性到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']); 
} 

- 以下陣列,將只成爲一個沒有維度的「平面陣列」,基於單獨保存所有相應的屬性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; 

- 所以在這部分IM不知道如何實際處理從PHP多維數組。我假設我們需要將它保存在一個Javascript數組中,然後我們可以通過foreach循環迭代/訪問每個值 - 但是再一次, - 我怎麼不完全確定?

+0

對於javascript部分,基本上用'for(;;)'循環遍歷數組,用'for..in'循環遍歷數組。所有你需要的信息在這裏:http://stackoverflow.com/questions/11922383/access-process-nested-objects-arrays-or-json – bfavaretto

回答

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。

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 
    } 
}); 
相關問題