2017-01-12 4 views
-1

Я пытаюсь добавить данные в следующую строку таблицы (которая начинается пустая) в html, и я не могу заставить ее работать.Добавить данные в следующую строку таблицы в цикле forEach

Вот функция, которую я имею, когда кнопка нажата для обновления таблицы с текущими данными. Я получаю сообщение об ошибке в консоли, которая говорит, что forEach не является функцией. Может ли кто-нибудь дать мне больше информации о том, почему это происходит?

//Updates the table when the update button is pressed 
function updateButton(){ 
     function updateButton(){ 
    $.get("Some PHP server data", function(data) { 
     data.forEach(function(row) { 
      var htmltext = "<tr><td>"+row.lastname+"</td><td>"+row.currentcity+"</td><td>"+row.uid+"</td><td>"+row.ip+"</td><td>"+row.updateTime+"</td></tr>" 

      $(("#table1").find('tbody').append($(htmltext))); 
     }); 
    }); 

} 

html У меня есть элемент таблицы.

<table id="table1" class="table table-striped"> 
<thead> 
    <tr> 
    <th>Firstname</th> 
    <th>Lastname</th> 
    <th>Current City</th> 
    <th>uid</th> 
    <th>IP</th> 
    <th>When</th> 
    </tr> 
</thead> 
<tbody> 

</tbody> 
</table> 
+0

Вы пропускаете '+' подписать сразу после ' "". – nurdyguy

+0

Спасибо, но он по-прежнему не работает, когда я его исправляю. –

+0

Сохраните всю вещь как одну строку в переменной, а затем добавьте строку html. – nurdyguy

ответ

0

Это должно быть чуть более прямым.

var html = "<tr><td>"+row.lastname+"</td><td>"+row.currentcity+"</td><td>"+row.uid+"</td><td>"+row.ip+"</td><td>"+row.updateTime+"</td></tr>" 

$("#table1").find('tbody').append(html); 
+0

Да, не знаю, почему я об этом не думал. Я редактировал сообщение –

+0

Возьми $ off. Просто используйте 'append (html)'. Кроме того, проверьте документацию 'forEach' http://www.w3schools.com/jsref/jsref_forEach.asp – nurdyguy

0

Я удалил вашу базу данных, потому что я не могу проверить ваше соединение с вашей базой данных. Я просто оставил необходимые HTML и JavaScript аспекты.

Просто нажмите кнопку «Добавить», чтобы добавить строку в таблицу в связанном jsFiddle.

Адрес электронной почты: HTML.

<div id="button"> 
    Press to add row 
</div> 

<table id="table1" class="table table-striped"> 
    <thead> 
    <tr> 
     <th>Firstname</th> 
     <th>Lastname</th> 
     <th>Current City</th> 
     <th>uid</th> 
     <th>IP</th> 
     <th>When</th> 
    </tr> 
    </thead> 
    <tbody id="tbody"> 

    </tbody> 
</table> 

Вот JavaScript.

function updateButton() { 

    $("#table1").find("tBody").append($("<tr><td>"+ "row.firstname" + "</td>" + "<td>" +"rowLastName" + "</td>" + "<td>" + "row.currentcity" + "</td>" + "<td>" + "row.uid" + "</td>" + "<td>" + "row.ip" + "</td>" + "<td>" + "row.updateTime" + "</td> </tr>")); 
} 

var button = document.getElementById('button'); 
button.onclick = function() { 
    updateButton(); 
} 

И вот jsFiddle. Надеюсь это поможет.

https://jsfiddle.net/1qutvgrp/1/

Что касается вашего вопроса Foreach ... Пример ниже:

var targetList = []; 
var selectedFilters = $(SelectedItems()); // An array of items 
selectedFilters.each(function (index, listitem) 
{ 
    var temp = _objectList[$(listitem)[0].getAttribute('hash')]; 
    targetList.push(temp); 
}); 
+0

Спасибо, это было очень полезно, но я столкнулся с другой проблемой. Я отредактировал сообщение –

+0

Вы можете использовать метод jQuery .each(). Пример в моем сообщении. https://api.jquery.com/each/ – Almond