2011-01-06 4 views
3

안녕하세요 메신저 CodeIgniter의를 사용하고 난 내 컨트롤러의 데이터베이스에서 내 출력을 에코 다음 내보기 파일에 내가이 수행CodeIgniter의 JSON

<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; 
    } 


} 
+0

나를 위해 테스트 할 수있는 좋은 방법 그냥 시도에 컨트롤러 기능을 "방문하는 것이 었습니다 야생 "이라고 말하면서 브라우저에 입력하고 출력이 무엇인지 알기 때문에 기대했던 결과를 얻고 있다는 것을 알 수 있습니다. – jondavidjohn

+0

'json_encode' 다음에'$ this-> load-> view ('includes/footer', $ data);를 제거하십시오. JSON 데이터는 그 전후에 아무 것도 가질 수 없습니다. –

답변

3

$forum_list->result()은 결과 배열을 반환합니다.

단지 1 행을 원할 경우 $forum_list->row()을 사용하십시오. 그렇지 않으면 자바 스크립트에서 모든 행을 반복해야합니다.

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

편집 : JSON을 출력 할 때 이전이나 이후에 아무것도 인쇄하지 마십시오. json_encode 뒤에 $this->load->view('includes/footer', $data);을 삭제해야합니다. 또한 컨트롤러는 아무 것도 반환하지 않습니다.

EDIT 2 : if ($data['forum_list'] === true)if ($data['forum_list'] !== false)으로 바꿉니다. ===은 형식을 비교하고 배열은 부울이 아닙니다.

+0

괜찮 았어. 나는 당신이 말한 모든 것을 끝냈다. 컨트롤러를 탐색 할 때 뭔가를 출력하지만 경고한다 : 정의되지 않았다 : S – ole

+0

@ole : 컨트롤러는 무엇을 출력 하는가? –

0

모델 :

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']); 
    } 
} 
0

이 시도 :

//works only with php 5.3 
echo json_encode($data['forum_list'], JSON_FORCE_OBJECT);