2016-11-30 5 views
0

Итак, я пытаюсь заполнить таблицу данными из сценария. Я пробовал много менять множество параметров и т. Д., Но, похоже, не может заставить его работать. Вот что у меня до сих пор:Заполнение таблицы данными json с использованием jQuery и Ajax

$(document).ready(function() { 
     $.get(file + '?op=retrieve&page=1', function (data) { 
      $.each(data, function (i, elem) { 
       $('#mainTable').append(
        '<tr><td>' + elem.name + '</td><td>' + elem.address '</td></tr>' 
       ) 
      }) 
     }) 

В настоящее время я получаю сообщение об ошибке: TypeError: е не является объектом. (Оценка «т-1 в е»)

Heres пример данных JSon:

{"id":"348141","name":"Birdies","address":"Bridge Street, Tunbridge Wells, TN1 1AH"}] 
+0

показывают нам структуру данных, извлекаемых из вызова .get. –

+0

, как @MisterPositive, показать нам насмешку с данными, полученными из вызова .get, иными словами, вы можете поместить точку разрыва в строку $ .each и посмотреть содержимое в данных – Hatim

+0

@MisterPositive см. Edit :) – JL9

ответ

0

Из данных, я понял, что вы получаете массив объектов JS.

Если вы видите код JS, вы используете следующий фрагмент

$ .each (данные, функция (я, Эль) { });

Итак, из приведенного выше кода «i» - это индекс, а elem - текущее значение повторения.

Так что elem.name [i] будет недействительным. Это потому, что elem сам является объектом, у которого есть свойство name, а имя - только строка типа. Таким образом, вы не можете иметь имя [i].

$(document).ready(function() { 
     $.get(file + '?op=retrieve&page=1', function (data) { 
      $.each(data, function (i, elem) { 
       $('#mainTable').append(
        '<tr><td>' + elem.name + '</td><td>' + elem.address '</td></tr>' 
       ) 
      }) 
     }) 

Я предполагаю, что элемент «mainTable» выглядит как этот

<table> 
<tbody id="mainTable"> 
</tbody> 
</table> 
Смежные вопросы