JQuery JSON запрос и Кохана - PullRequest
       5

JQuery JSON запрос и Кохана

0 голосов
/ 14 ноября 2010

Я пытаюсь немного узнать о jquery и больше о фреймворке кохана. Итак, я написал простой тестовый скрипт, чтобы получить некоторые записи из базы данных. PHP работает так, как он возвращает строку в формате json, но я думаю, что мой jquery не работает.

Предполагается, что json вернет несколько строк, поэтому я хочу добавить все эти в div #chats. Вот мой код 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());
}

Ответы [ 3 ]

2 голосов
/ 14 ноября 2010

Просто удалите ->current() из вашего get_entries() метода.

1 голос
/ 19 ноября 2010

Немного прибралось:

Модель:

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());
}
0 голосов
/ 19 апреля 2013
$results = DB::select(...)->from(...)->where(...)->execute();
echo json_encode(iterator_to_array($results));
...