CodeIgniter Ajax响应包含数据,但输出未定义 - php

我一直在从事CodeIgniter项目,使用ajax从控制器返回数据时遇到了问题。

控制器:

function outputAjax()
    {
        $this->load->model('my_model');
        $data['results'] = $this->site_model->getInfo();
        $this->output->set_output(json_encode($data));
    }

模型:

function getInfo()
{
    $this->db->order_by('PubDate','DESC');
    $query = $this->db->get('Articles', 50);

        return $query->result();
}

视图中的Ajax函数:

<div id="article-area">
    <p>Hey this is where the ajax call should output!</p>

</div>
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.8.2/jquery.min.js"></script>
<script type="text/javascript" language="Javascript">
 jQuery(document).ready(function(){     
      $.ajax({
url: 'http://localhost/project/index.php/my_controller/outputAjax',
dataType:'json',
success: function(data) {
    $.each(data, function(index,item){
        $("#article-area").append('<div><b>' + item.id + '</b></div><hr />');

    });
}
      });

});

我可以使用PHP foreach循环很好地输出数据,但是现在我试图将其转换为使用Ajax。如果我是正确的,则输出的数据是对象数组。
每个“对象”包含6个左右的数据字段,例如:id,title,url,PubDate,Source。

我对使用ajax进行任何事情都是陌生的,但是在尝试调试问题,使用Chrome检查并检查“网络”的过程中,我可以看到ajax调用,并且在“响应”选项卡中:以这种方式在此处显示我需要的所有数据:

{"results":[{"id":"1","Source":"My Source","Title":"My Title". . . .

由于数据显示在响应中,但是页面上什么都没有显示,或者如果我更改了ajax调用,则可以将其输出为UNDEFINED。

我希望获得的最终结果是页面上大约有10个div,其中包含来自ajax调用的数据。这也提出了我的附带问题...

我的模型从数据库返回50行数据。我目前正在将所有内容传递给json格式的ajax函数。我最初只会使用该数据的10行,然后在该页面上确定的时间内使用其余的行。最好是先继续将所有50行输出到ajax调用,然后根据需要使用它,还是将数据限制为仅用于模型最初使用的数据?

我已经看过一些关于CI的Ajax教程,但是,它们都使用POST,而我还没有找到一个可以在document.ready上运行并且没有用户交互的教程。我还注意到必须有几种输出数据的方法。我已经看到以这种方式使用.append().after()和.value()的方法,但是似乎没有一种适用于我的特殊情况...

谢谢您的帮助!

参考方案

如果您的数据只是一个数组,那么您的代码将起作用。但是,数据数组包含在对象的属性results中。

each更改为:

$.each(data.results, function(index,item){...

或者只是发送数组而不将其放入php results数组

$data = $this->site_model->getInfo();

CodeIgniter ODBC问题 - php

好吧,我已经构建了一个用于MSSQL的应用程序,最初以这种方式运行它,我购买了一台新计算机,出于某种奇怪的原因,它不允许我通过MSSQL连接。因此,我设置了ODBC。它连接良好,但似乎讨厌活动记录。我将不得不重写所有查询吗?还是我想念的东西。我收到这样的错误。A Database Error Occurred Error Number: 37000 [Mic…

在Codeigniter中以数组形式获取查询结果 - php

我有一个查询,如何获取结果作为数组? php大神给出的解决方案 像这样:$rs = $this->db->query(...); $array = $rs->result_array(); https://www.codeigniter.com/user_guide/database/results.html

加载CodeIgniter库的替代方法,以便它们与自动完成功能一起正常运行 - php

在CodeIgniter中,可以像下面这样加载库和模型:$my_library = new my_library(); 之所以要这样做,是因为使用$this->load时,我使用的编辑器(Komodo Edit)无法识别用于自动完成的类。 参考方案 在某些情况下,可以像这样加载类,但是除非绝对必要,否则您应该坚持使用CodeIgniter加载器类。我敦…

在Codeigniter中定义应用程序常数 - php

我想知道一种在Codeigniter中定义应用程序常量的干净方法。我不想更改任何codeigniter的本机文件。因此,我不想在application/config/constants.php中定义它,因为当我需要迁移到较新版本的代码点火器时,我将无法直接复制codeigniter的本机文件。我创建了一个文件application/config/my_con…

codeigniter 2.0.3-致命错误 - php

我是Codeigniter的新手,尝试了其中一个教程的课程,但抛出以下错误:Class 'Controller' not found in C:\xampp\htdocs\CodeIgniter\application\controllers\email.php on line 3 我的代码:<?php class Email ex…