我正在尝试学习一些jquery以及有关kohana框架的更多信息。好的,所以我写了一个简单的测试脚本来从数据库中获取一些条目。 php的工作方式如下:它以json格式返回行,但我想我的jquery无法正常工作。
json应该返回多行,所以我希望它将所有这些行添加到#chats div中。这是我的jquery代码:
$(document).ready(function() {
$.getJSON('json/get_chat_entries/1',
function(data) {
$('#chats').append('<li>' + data.text + '</li>');
}
});
});
获取条目代码是假设要获取数据库中与chat_id相匹配的所有条目。现在写,它似乎只返回第一个条目。这是我的获取条目代码:
function get_entries() {
$entries = $result = DB::select() - > from('chat_entries') - > where('chat_id', '=', $this - > chat_id) - > execute() - > current();
return $entries;
}
这是控制器代码:
public function action_get_chat_entries(){
$chat_id = $this->request->param('id');
$chat = new Model_Chat($chat_id);
echo json_encode($chat->get_entries());
}
只需从->current()
方法中删除get_entries()
。
清理了一下:
型号:
public function get_entries()
{
if (!$this->_loaded)
return array();
return DB::select()
->from('chat_entries')
->where('chat_id', '=', $this->chat_id)
->execute($this->_db);
}
控制器:
public function action_get_chat_entries()
{
$id = $this->request->param('id', FALSE);
$chat = new Model_Chat($id);
$this->request->headers['Content-Type'] = 'application/json';
$this->request->response = json_encode($chat->get_entries());
}
$results = DB::select(...)->from(...)->where(...)->execute();
echo json_encode(iterator_to_array($results));