2014-09-15 4 views
0

컨트롤러의 코드입니다. 나는이 결과를 아작스 성공 부분에 넣고 싶다. 내 질문에 JSON.parse() 함수를 사용하면 아약스에서 결과를 표시하는 방법, 어떤 하나의 루프를 도와 줄 수 있습니다; json 코드는 다음과 같습니다. [{'id:1'},{info:name}] ???구문 분석 JSON json_encoded 데이터베이스 결과

function ajax(){ 

      $rpp= $_POST['rpp']; 
      $last = $_POST['last']; 
      $pn = $_POST['pn']; 


     if($pn<1){ 
      $pn=1; 
     } 
     elseif($pn>$last){ 
      $pn =$last; 
     } 

     $l = ($pn - 1) * $rpp; 
     $this->db->limit($l, $rpp); 
     $query = $this->db->get('pages'); 

     $data = array(); 

if ($query->num_rows() > 0) { 
foreach($query->result() as $row) { 
    $data[] = $row; 
    } 
} 
$json = json_encode($data); 

echo $json; 
    } 

function request_page(pn) 
{ 
    var rpp = <?php echo $rpp; ?>; // results per page 
    var last = <?php echo $last; ?>; // last page number 

    var results_box = document.getElementById("results_box"); 
    var pagination_controls = document.getElementById("pagination_controls"); 
    results_box.innerHTML = "loading results ..."; 
    $.ajax({ 
       type: "POST", 
       url: "<?php echo site_url('search/ajax')?>", 
       data: { 'rpp' : rpp , 'last' : last, 'pn' : pn}, 
       dataType: "text", 
       success: function(msg){ 
        alert(msg); 
      // $.each($.parseJSON(msg), function() { 
     // $('#results_box').html(this.id + " " + this.info); 
    // }); 
       } 


      }); 

답변

1

AJAX 부분은 변경

dataType: "text", 

dataType: "json", 

및 JQuery와 파싱을 수행한다.

[편집]

당신이 가정 : [{'id':1,'info':'name'},{'id':2,'info':'nom'} ]이 (게시물에 JSON 배열의로 json_encode의 결과 약간 사용할 수 없습니다 아니라) ...

success: function(msg){ 
       var id = msg[0].id; 
       var info = msg[0].info; 
       ... 

는 오류가 없습니다 이 코드에서 핸들링과 예외 처리가 필요하지 않습니다!

+0

확인 방법 다음 내가 배열에서 값을 얻을? –

+0

확인 tnx 한 번 더 질문 Uncaught TypeError : 정의되지 않은 'id'속성을 읽을 수 없습니다. –

+0

이것은 샘플입니다. 귀하의 json 문자열, 즉 귀하의 PHP 배열의 내용에 따라 다릅니다. 정확한 PHP 배열을 보여주십시오. –

0

먼저 그 데이터 형식을 $ 아약스()를 형성 제거한 다음과 같은 PHP에서 올바른 콘텐츠 유형 헤더를 추가 :이 방법을

header('Content-type: application/json'); 

, jQuery를 올바르게 JSON을 구문 분석합니다.

지금, 당신이 뭔가를 할 수 있습니다

success: function(res){ 
    $.each(res, function(el) { 
     console.log(el.id); 
     console.log(el.info); 
    }); 
} 
+0

아, 그 중 하나를 놓쳤습니다! –

+0

ok 및 배열에서 데이터를 추출하는 방법은 무엇입니까? –