[英]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.