2013-03-25 2 views
0

Я хочу использовать удаленные данные MySQL как теги, используя плагин select2. Но моя кривая обучения для JSON очень слаба. Пожалуйста, помогите мне в исправлении этого формата JSON.Почему этот JSON не работает?

$("#e7").select2({ 
    placeholder: "Search for a movie", 
    minimumInputLength: 3, 
    ajax: { 
     url: "search.php", 
     dataType: 'jsonp', 
     quietMillis: 100, 
     data: function (term, page) { // page is the one-based page number tracked by Select2 
      return { 
       q: term, //search term 
       page_limit: 10, // page size 
       page: page, // page number 
       apikey: "ju6z9mjyajq2djue3gbvv26t" // please do not use so this example keeps working 
      }; 
     }, 
     results: function (data, page) { 
      var more = (page * 10) < data.total; // whether or not there are more results available 

      // notice we return the value of more so Select2 knows if more results can be loaded 
      return { 
       results: data.movies, 
       more: more 
      }; 
     } 
    }, 
    formatResult: movieFormatResult, // omitted for brevity, see the source of this page 
    formatSelection: movieFormatSelection, // omitted for brevity, see the source of this page 
    dropdownCssClass: "bigdrop", // apply css that makes the dropdown taller 
    escapeMarkup: function (m) { 
     return m; 
    } // we do not want to escape markup since we are displaying html in results 
}); 

А вот search.php

<?php 
    $sql=mysqli_query($db3->connection,"SELECT * FROM tags"); 

    while($row=mysqli_fetch_array($sql)){ 
     $tags=$row['tags']; 
     $id=$row['id']; 

     $response=array(); 
     $response['tags']=$tags; 
     $response['id']=$id;  
    } 

    echo json_encode($response); 
?> 
+4

Если вы не объясните, в чем проблема, то, что вы ожидаете, что происходит, что происходит, какие сообщения об ошибках вы получаете и т. д., тогда это маловероятно, что мы сможем вам помочь. Измените свой вопрос и уточните проблему. И нет, «это не работает» - это * не * полезное описание ошибки. Мой тостер тоже не работает. –

+1

ваш сброс $ response внутри цикла while. переместите '$ response = array();' outside и замените внутри '$ response [] = array ('tags' => $ tags, 'id' => $ id);' – Waygood

ответ

0

Ваш цикл, а не для заполнения массива $ отклика. $ Ответ = массив(); сбрасывает ответ $ с каждой итерацией петли

$sql=mysqli_query($db3->connection,"SELECT * FROM tags"); 

$response=array(); 
while($row=mysqli_fetch_array($sql)){ 
    $tags=$row['tags']; 
    $id=$row['id']; 

    $response[]=array('tags'=>$tags, 'id'=>$id); 

} 

echo json_encode($response); 
Смежные вопросы