簡體   English   中英

Codeigniter / JSON-數組結果無效

[英]Codeigniter / JSON - array result invalid

我的代碼中有一個奇怪的行為。

下划線模板:

    <% _.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;
    }
}

更改:

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']);
}

不要在代碼中使用$ array之類的保留關鍵字,而要使用其他名稱。 不要指望PHP正在創建新元素。 只需讓循環定義計數器!

看看是否可行...

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM