2010-04-08 8 views
0

배열이 너무 깊거나 무엇인지 모르겠지만 키와 정의 해제 이외의 다른 것을 얻을 수는 없습니다. 도와주세요!jQuery : 다차원 배열을 구문 분석하는 방법은 무엇입니까?

개발을 위해 Codeigniter를 사용하고 있습니다.

$term = $this->input->post('search_term'); 

    $this->db->like('book_title', $term); 

    $search_query = $this->db->get('books'); 

    $return = array(); 

    $i = 0; 

    if ($search_query->num_rows() > 1) { 

    foreach($search_query->result() as $s) { 

    $return['books']['book_id'] = $s->book_id; 
    $return['books']['book_title'] = $s->book_title; 
    $return['books']['book_price'] = $s->book_price; 

    $i++; 

    } 

    } elseif ($search_query->num_rows() == 1) { 

    echo 1; 

    $i = 0; 

    $return['book_id'] = $search_query->row('book_id'); 
    $return['book_title'] = $search_query->row('book_title'); 
    $return['book_price'] = $search_query->row('book_price'); 


    } elseif ($search_query->num_rows() == 0) { 

    echo 0; 

    } 



    echo json_encode($return); 

자바 스크립트

$("#search").change(function() { 

    var searchTerm = $(this).val(); 

    $.post("/contentcreator/search_by_term", { search_term: searchTerm }, function(data) { 

    $("#book_scroller").empty(); 

    var lengthHolder = data.books; 

    for (var i = 0; i > data.books.length; i++) { 

     var row = '<li id="book_item_' + l + '">' + data.books['book_title'] +'</li>'; 

     $("#book_scroller").append(row); 


    }; 

    i++; 


    }, "json"); 

}); 

감사합니다 다음은 PHP 후 jQuery를입니다!

+0

당신은 약간 것을 다시 포맷 할 수 있습니까? 거의 읽을 수 없습니다. 세부 서식 지정 : http://stackoverflow.com/editing-help (짧은 버전 : 모든 코드를 네 칸 공백으로 들여 쓰기) –

+0

PHP에서 생성되어 브라우저로 전송 된 실제 JSON 문자열을 확인하는 것이 유용 할 것입니다. –

답변

0

내가 가지고있는 제안 중 하나는 반환 된 책이 반환되는 책의 수에 관계없이 동일한 형식이어야한다는 것입니다. 일치 항목이 하나만있는 경우 설정하는 방법으로 id, title, price이 포함 된 배열을 반환하지만 두 개 이상인 경우 id, title, price 배열 인 단일 (?) 항목 설명서가 포함 된 배열을 반환합니다. 여러분이 항상 책 배열을 반환하기를 원합니다. 각 책은 id, title, price을 포함하는 객체입니다. 참고로 자바 스크립트의 작은 문제도 수정했습니다. 면책 조항 : 나는 PHP 프로그래머가 아니므로 구문이 틀릴 수도 있습니다.

이 시도 :

$i = 0; 

foreach($search_query->result() as $s) { 

    $return[$i]['book_id'] = $s->book_id; 
    $return[$i]['book_title'] = $s->book_title; 
    $return[$i]['book_price'] = $s->book_price; 

    $i++; 

} 

자바 스크립트

$("#search").change(function() { 
    var searchTerm = $(this).val(); 
     $.post("/contentcreator/search_by_term", { search_term: searchTerm }, function(data) { 
     $("#book_scroller").empty(); 
     for (var i = 0; i > data.length; i++) { 
      var book = data[i]; 
      var row = '<li id="book_item_' + book.id + '">' + book.book_title +'</li>'; 
       $("#book_scroller").append(row);  
     };  
     }, "json"); 
}); 
관련 문제