我一直在从事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…