jQuery: Nasıl multidemensional dizi ayrıştırmak için?

1 Cevap php

Ben dizi çok derin ya da ne olup olmadığından emin değilim, ama ben tuşları ve undefines başka bir şey almak için görünmüyor olabilir. Yardım edin lütfen!

Ben geliştirme için CodeIgniter kullanıyorum. Burada PHP ardından jQuery:

 $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);

Javascript

$("#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");

});

Teşekkürler!

1 Cevap

Ben Bir öneri döndü json bakılmaksızın iade kitapların sayısının aynı formatta olmasıdır. Yalnızca bir maç varsa o kadar ayarlanmış şekilde, id, title, price içeren bir dizi döndürür, ama varsa birden bir dizi tek bir (?) Öğesi kitapları içeren bir dizi döndürür ve id, title, price. id, title, price içeren bir nesne her biri - bu her zaman o kitapların bir dizi dönmek istiyor gibi geliyor bana. Ben de sizin javascript ile küçük sorunlar bir dizi yukarı sabit olduğunu unutmayın. Disclaimer: Ben hiçbir şekilde bir php programcı değilim - benim dizimi kesinlikle yanlış olabilir.

Bu deneyin:

$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++;

}

Javascript

$("#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");
 });