2015-12-07 3 views
0

Моя часть jQuery не работает, может кто-нибудь объяснить, почему я не получаю желаемый результат? index.phpдинамически извлекает данные из sql

while ($row = mysql_fetch_array($res)) 
    array_push($result, array('text' =>$row[1])); 
echo json_encode(array("result"=> $result)); 

getting.js

$.getJson("view_note.php", function(data){ 
      $("ul").empty(); 

      $.each(data.result,function(){ 

      $("ul").append("<li>Text: "+this['text']+"</li><br />"; 
      }); 
     }); 
    }); 

Выходные OutPut

+0

igonre вертикальной линии – jake123

+0

Вы должны будете добавить вывод отладки. На стороне php: что означает '$ result'? На стороне JS: что содержат данные? На сетевом уровне: что передано? Это все, что только вы можете узнать, у нас нет доступа к вашей системе ... – arkascha

+1

Урок 1: Научитесь отлаживать моего друга. Вы можете использовать ** console.log (data); **, чтобы посмотреть, какие данные вы получаете. Еще одна вещь, которую я вижу в вашем коде, - это удалить **
** – aceraven777

ответ

0

Используйте каждый цикл, как

$.each(data.result,function(i,item){ 
      $("ul").append("<li>Text: "+$(item).text+"</li>"; 
      }); 

также удалить <br/>

0

Я думаю, это потому, что вы обертываете массив 2 раза.

echo json_encode(array("result"=> $result)); 

в

echo json_encode($result); 
+0

Переменная $ result - это уже массив из того, что я вижу, потому что вы используете array_push для вставки данных, а затем используете echo json_encode (array («result» => $ result)); чтобы поместить его в другой массив. Вот почему вы получили ответ еще в {} – Jomie

1
Try this: 

$.getJson("view_note.php", function(data){ 
    $("ul").empty(); 

    $.each(data.result,function(){ 

     $("ul").append("<li>Text: "+this['text']+"</li><br />"); 
    }); 
}); 
0

Ответ синтаксис (AFAIK), это ваш код отформатирован и с синтаксисом исправлено:

$.getJson("view_note.php", function(data){ 
    $("ul").empty(); 

    $.each(data.result,function(){ 
     $("ul").append("<li>Text: "+this['text']+"</li><br />"); 
    }); 
}); 

Я предпочел бы это быть комментарием, но я не могу из-за ограничений размера и форматирования

0

Вы можете изменить это:

var data = [{ 
 
    "result": [{ 
 
    "text": "My first note." 
 
    }, { 
 
    "text": "My Second note." 
 
    }] 
 
}] 
 
$.each(data[0]['result'], function(i, item) { 
 
    $("ul").append("<li>Text: " + item.text + "</li>"); 
 
    //-----------add index ----------^-----put closing-^-----here. 
 
    // also no need to add <br> tag at the end. 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<ul></ul>

Смежные вопросы