【问题标题】:codeigniter JSON代码点火器 JSON
【发布时间】:2011-06-04 18:04:39
【问题描述】:

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

<script type="text/javascript">
$.getJSON('ajax/forumThreads', function(data) {          
alert(data.overskrift);
});

</script>

但它没有显示任何内容: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;
    }


}

【问题讨论】:

  • 对我来说测试的一个好方法是尝试“在野外”访问控制器功能,只需在浏览器中输入它,看看输出是什么,这样你就知道你得到了您期望的输出。
  • json_encode 之后删除$this-&gt;load-&gt;view('includes/footer', $data);。 JSON 数据前后不能有任何内容。

标签: php javascript jquery json codeigniter


【解决方案1】:

试试这个:

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

【讨论】:

    【解决方案2】:

    $forum_list-&gt;result() 返回一个结果数组。

    如果您只想要 1 行,请使用 $forum_list-&gt;row(),否则在 javascript 中,您需要遍历所有行。

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

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

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

    【讨论】:

    • 好的,我已经完成了你所说的一切,如果我浏览到控制器,它会输出一些东西,但它会警告:未定义:S
    • @ole: 控制器输出什么?
    【解决方案3】:

    型号:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-02-09
      • 2016-01-28
      • 2012-06-30
      • 2012-02-21
      • 2011-03-29
      • 2011-08-06
      • 1970-01-01
      相关资源
      最近更新 更多