2016-02-13 2 views
0

Привет, я пытаюсь получить значение из базы данных и отображать его как ссылку в моей навигационной панели, но я не был очень успешным.Ajax Json While Loop

начать с моим JQuery

<script> 
     $(document).ready(function(){ 
       $.ajax({ 
        type: 'GET', 
        data: {loadpage: 'table'}, 
        url: 'addtable.php', 
        success: function(data){  

         $('.navbar ul').append('<li><a href="#" class="table">'+THE-PHP-ARRAY I WANT TO SHOW+'</a></li>'); 
        } 
       }); //ajax request 
      }); 
    </script> 

addtable.php

$query = "SELECT * FROM Menus WHERE menuCreator = '".$_SESSION['U_ID']."'"; 

$result = mysqli_query($con, $query); 
$index=0; 
while($row = $result->fetch_array()){ 

    $index++; 
    $data = array(

     $index=>$row['menuName'] 
    ); 

    echo json_encode($data); 

} 

Я пытался много вещей. Если я изменю свой dataType на json, он вообще не работает. Я попытался поместить его в цикл $ .each(), пока ничего не работает. Если я иду в addtable.php он отображает

{ "1": "Завтрак"} { "2": "Book Fair"}

что правильные значения в моей базе данных

Im извините если это не было слишком ясно, им 15 и я только сделать это между школой любая помощь будет принята с благодарностью заранее спасибо

ответ

1

json_encode выводит полный текст JSON, но выводит его внутри цикла вы выводя кучу JSON тексты, опирающиеся друг на друга. Результат не является допустимым, единственным JSON-текстом.

Положить $data в массив.

Кодировать этот массив как JSON после цикл закончен.

Тогда вам нужно будет перебрать этот массив (data), когда он преобразуется в JavaScript.

+0

Как я могу закодировать данные в javascript $ .each()? – NaderBesada

+0

Функция документирована - http://api.jquery.com/jquery.each/ - что вы не понимаете? (Вероятно, это должен быть новый вопрос, а не комментарий). – Quentin

+0

no я имел в виду, должен ли я использовать каждую функцию, я не просил, что она извинилась за недопонимание. Я просто хочу прояснить что-то еще, поэтому я должен поместить переменную $ data, которая содержит массив, а затем поместить его в другой массив и json закодировать его? – NaderBesada

0
{"1":"Breakfast"}{"2":"Book Fair"} 

не является действительным объектом JSON. если вы хотите, чтобы закодировать несколько объектов, что вам нужно сделать это следующим образом:

[{"1":"Breakfast"}, {"2":"Book Fair"}] 

или если вам просто нужно значение:

["Breakfast", "Book Fair"] 

Для загрузки с сервера вы должны использовать сокращенную функцию jquery.getJSON