кодигнитор JSON - PullRequest
       1

кодигнитор JSON

3 голосов
/ 06 января 2011

Привет, я использую 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;
    }


}

Ответы [ 3 ]

3 голосов
/ 06 января 2011

$forum_list->result() возвращает массив результатов.

Если вам нужна только 1 строка, используйте $forum_list->row(), в противном случае в javascript вам нужно будет перебрать все строки.

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

РЕДАКТИРОВАТЬ: при выводе JSON не печатайте ничего до или после. Вам необходимо удалить $this->load->view('includes/footer', $data); после json_encode. Также контроллеры ничего не возвращают.

РЕДАКТИРОВАТЬ 2: заменить if ($data['forum_list'] === true) на if ($data['forum_list'] !== false). === сравнивает тип, а массив не является логическим.

0 голосов
/ 07 января 2011

Попробуйте это:

//works only with php 5.3
echo json_encode($data['forum_list'], JSON_FORCE_OBJECT);
0 голосов
/ 06 января 2011

Модель:

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']);
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...