繁体   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