2014-07-23 46 views
2

我在我的代碼中有一個奇怪的行爲。Codeigniter/JSON - 數組結果無效

下劃線模板:

<% _.each(pinnwand, function(item,key,list) { %> 
     <strong>Item: <%= item.name %></strong> 
    <% }); %> 
    <% _.each(pinnwand2, function(item,key,list) { %> 
     <strong>Item: <%= item.name %></strong> 
    <% }); %> 

爲陣列 「pinnwand」 和 「pinnwand2」。

陣列:

function getPinnwandData() { 
    header('Content-Type: application/json'); 
    $array = $this->Pinnwand_model->getAllPinnwand($this->input->post('user_id'),"json"); 
    $data['pinnwand'] = array(); 
    foreach($array as $a) { 
     $data['pinnwand'][] = array("name" => strtolower($a['name']), "id" => $a['id']); 
    } 
    $data['pinnwand2'] = array(array('name' => 'MettWand',"id" => 1),array('name' => 'wurst2',"id" => 2)); 
    echo json_encode($data); 
} 

奇怪的是, 「pinnwand2」 的顯示和 「pinnwand」 沒有。
控制檯日誌顯示此:

Object {pinnwand: Array[0], pinnwand2: Array[2]} 

,並肯定有數據庫中的某些記錄「pinnwand」。

這是 「郵差」 JSON輸出:

{ 
"pinnwand": [ 
    { 
     "name": "wurst wand", 
     "id": "1" 
    }, 
    { 
     "name": "schinken wand", 
     "id": "2" 
    }, 
    { 
     "name": "mett wand ", 
     "id": "3" 
    } 
], 
"pinnwand2": [ 
    { 
     "name": "MettWand", 
     "id": 1 
    }, 
    { 
     "name": "wurst2", 
     "id": 2 
    } 
] 

}

我缺少什麼?謝謝!

編輯:
getAllPinnwand方法:

function getAllPinnwand($userId, $main = "all") { 
    if($main == "json") { 
     $query = $this->db->get_where('pinnwand', array('user_id' => $userId)); 
     return $query->result_array(); 
    } else { 
     $query = $this->db->get_where('pinnwand', array('user_id' => $userId)); 
     $result = $query->result(); 
     foreach($result as $r) { 
      $query1 = $this->db->get_where('pinnwand_content', array('pinnwand_id' => $r->id)); 
      $r->content = $query1->result(); 
     } 
     return $result; 
    } 
} 

回答

-1

變化:

foreach($array as $a) 
{ 
    $data['pinnwand'][] = array("name" => strtolower($a['name']), "id" => $a['id']); 
} 

到:

$csx = count($myarray) 

for($x=0;$x<count($myarray);$x++) 
{ 
    $data['pinnwand'][$x] = array("name" => strtolower($myarray[$x]['name']),"id"=>$myarray[$x]['id']); 
} 

不要使用保留關鍵字代碼$陣列,只取其他名稱。不要指望PHP創造新元素。讓循環定義計數器!

看看是否能工程....

+0

還是一樣...... pinnwand是空的,pinnwand2有項目 – Marek123

+0

$陣列是絕對安全的 –

+0

能否請您提供這個片段身邊更多的代碼?! 從創建此數組到具有預期結果的xhr請求。然後我們可以幫助你。 但只有這幾條線不會幫助我們找到問題的根源。 – SmileMZ