У меня есть запрос ajax в файл php, возвращающий мне строки по 3 значения каждый.
Я хочу добавить их в таблицу. Это работает. Я получаю свою информацию в своей таблице, но я не могу добавить классы или идентификатор и немного стилизовать его.
success : function(data) {
$('#lijstbeh').empty();
var data2 = jQuery.parseJSON(data);
$('#lijstbeh').append('<table class="table">');
$('#lijstbeh').append('<tr>');
$('#lijstbeh').append('<th>Behandeling ID</th>');
$('#lijstbeh').append('<th>Behandeling kort</th>');
$('#lijstbeh').append('<th>Behandeling datum</th>');
$('#lijstbeh').append('</tr>');
$.each (data2,function (bb) {
$('#lijstbeh').append('<tr class="tblbehandelingen">');
$('#lijstbeh').append('<td>' + data2[bb].BEH_ID + '</td>');
$('#lijstbeh').append('<td>' + data2[bb].BEH_behandelingkort + '</td>');
$('#lijstbeh').append('<td>' + data2[bb].BEH_datum + '</td>');
$('#lijstbeh').append('</tr>');
});
$('#lijstbeh').append('</table>');
}
РЕДАКТИРОВАТЬ
$(document).ready(function () {
$('.tblbehpatienten').click(function () {
var value1 = $(this).find('td:first').text();
var value2 = $(this).find('td:first').next().text();
$("#beh_voornaampat").text(value1);
$("#beh_familienaampat").text(value2);
$.ajax({
type: 'POST',
url: 'home/getbehandelingen',
datatype: "JSON",
data: {
PA_firstname: value1,
PA_lastname: value2
},
success: function (data) {
$('#lijstbeh').empty();
var data2 = jQuery.parseJSON(data);
var table_string = '<table>' + '<tr><th>Behandeling ID</th>' +
'<th>Behandeling kort</th>' + '<th>Behandeling datum</th></tr>';
$.each(data2, function (bb) {
table_string += '<tr class="tbl"><td>' + data2[bb].BEH_ID + '</td>' +
'<td>' + data2[bb].BEH_behandelingkort +'</td>' +
'<td>' + data2[bb].BEH_datum + '</td></tr>';
});
table_string += '</table>';
$(table_string).appendTo('div#lijstbeh');
};
});
});
});
Теперь он делает мою голову. Кажется, он не работает. Ли я винт вверх }
где - нибудь?
ИЗМЕНИТЬ СНОВА
};
должно быть }
Я сейчас работаю. Благодарю!
Вы можете объединить свои приложения в один оператор append()
. В противном случае jQuery закрывает теги для каждого из них. Проверьте DOM после добавления. Ваша структура выглядит так:
<div id="1">
<table></table>
<tr></tr>
<th>Behandeling ID</th>
<th>Behandeling kort</th>
<th>Behandeling datum</th>
<tr class="tbl" <="" tbody=""></tr>
<td>1</td>
<td>2</td>
<td>3</td>
</div>
Как вы можете видеть, это не действительная таблица.
Кроме того, в обработчике click
вы ссылаетесь на элемент с идентификатором "tbl", но он должен быть ссылкой на класс, например .tbl
.
Я также изменил обработчик click
чтобы отложить его с помощью jQuery on()
.
$('#1').append('<table>'+
'<tr><th>Behandeling ID</th>'+
'<th>Behandeling kort</th>'+
'<th>Behandeling datum</th></tr>'+
'<tr class="tbl"><td>' + "1" + '</td>'+
'<td>' + "2" + '</td>'+
'<td>' + "3" + '</td></tr>'+
'</table>');
$(document).on('click','tr.tbl',function(){
alert("dfmlgk");
});
В качестве альтернативы вы можете использовать appendTo()
.
В этом примере я сначала создаю таблицу как строку. Это может быть более полезно для динамически создаваемых таблиц. Построение таблицы в виде строки может быть выполнено с помощью append()
; приведенный ниже пример демонстрирует построение таблицы как строки в дополнение к appendTo()
.
var table_string='<table>'+
'<tr><th>Behandeling ID</th>'+
'<th>Behandeling kort</th>'+
'<th>Behandeling datum</th></tr>';
for (var i=1;i<=5;i++) {
table_string+='<tr class="tbl"><td>row '+i+' column 1</td>'+
'<td>row '+i+' column 2</td>'+
'<td>row '+i+' column 3</td></tr>';
}
table_string+="</table>";
$(table_string).appendTo('div#1');
$(document).on('click','tr.tbl',function(){
alert("dfmlgk");
});