codeigniter JSON

您好我使用codeigniter,然后我在我的控制器中回显我的数据库输出,然后在我的视图文件中我这样做:

 $.getJSON('ajax/forumThreads', function(data) { alert(data.overskrift); });  

但它没有显示任何东西:S

我的模型文件

 function forumList() { $this->db->select('overskrift', 'indhold', 'brugernavn', 'dato'); $this->db->order_by('id', 'desc'); $forum_list = $this->db->get('forum_traad'); if($forum_list->num_rows() > 0) { return $forum_list->result(); } else { return false; } } 

我的控制器

 function forumThreads() { $this->load->model('ajax_model'); $data['forum_list'] = $this->ajax_model->forumList(); if ($data['forum_list'] === true) { echo json_encode($data['forum_list']); $this->load->view('includes/footer', $data); } else { return false; } } 

$forum_list->result()返回一个结果数组。

如果你只想要1行,请使用$forum_list->row() ,否则在javascript中,你需要循环遍历所有行。

 $.each(data, function(i,v){ alert(v.overskrift); }); 

编辑:输出JSON时,不要在之前或之后打印任何内容。 你需要删除$this->load->view('includes/footer', $data);json_encode 。 此外,控制器不返回任何内容。

编辑2:用if ($data['forum_list'] !== false)替换if ($data['forum_list'] === true) if ($data['forum_list'] !== false)===比较类型,数组不是布尔值。

模型:

 function forumList() { $this->db->select('overskrift', 'indhold', 'brugernavn', 'dato'); $this->db->order_by('id', 'desc'); $forum_list = $this->db->get('forum_traad'); if($forum_list->num_rows() > 0) { return $forum_list->result_array(); } else { return false; } } 

控制器:

 function forumThreads() { $this->load->model('ajax_model'); $data['forum_list'] = $this->ajax_model->forumList(); if ($data['forum_list'] !== false) { echo json_encode($data['forum_list']); } } 

试试这个:

 //works only with php 5.3 echo json_encode($data['forum_list'], JSON_FORCE_OBJECT);