Для справки:
Я работаю с Bootstrap стол используя Bootstrap v3.3.6
Я пытаюсь заполнить свою таблицу, используя AJAX и jQuery, но проблема в том, что когда я делаю это, ни одно из расширений начальной загрузки, похоже, не работает с этими строками.
Я работаю над таблицей данных, используя следующие расширения:
`<table id="table" data-toggle="table" data-pagination="true" data-search="true" data-show-columns="true" data-show-pagination-switch="true" data-show-refresh="true" data-key-events="true" data-show-toggle="true" data-resizable="true" data-cookie="true" data-cookie-id-table="saveId" data-show-export="true" data-click-to-select="true" data-toolbar="#toolbar">
<thead>
<tr>
<th data-field="state" data-checkbox="true"></th>
<th>ID</th>
<th>ISBN</th>
<th>Description</th>
</tr>
</thead>
<tbody id="books-data">
<!-- table data rows to be inserted here -->
</tbody>
`
Если я заполняю таблицу, используя PHP кажется, что все работает нормально, под словом «все» я подразумеваю отображение данных, а также автоматически добавленные атрибуты в строки таблицы при добавлении чекбокса в первый <td>
а также data-index
атрибут для каждого столбца в каждой строке.
Тем не менее, заполнение таблицы с помощью AJAX только заполняет таблицу данными, и взаимодействие между таблицей и ее строками отсутствует, атрибуты или флажки загрузочной таблицы не добавляются, а также кажется, что с этими строками не работают расширения (например, экспорт, выбор строк …)
Для более подробной информации:
исходный код :
while ($row = mysqli_fetch_array($result)){ ?>
<tr>
<td></td>
<td><?php echo $row['id'] ?></td>
<td><?php echo $row['isbn']; ?></td>
<td><?php echo $row['description']; ?></td>
</tr>
<?php } ?>
Сгенерированный код по загрузочной таблице:
<tr data-index="0">
<td class="bs-checkbox ">
<input data-index="0" name="btSelectItem" type="checkbox">
</td>
<td style>
<!-- data -->
</td>
<td style> <!-- the same thing... --> </td>
</tr>
При динамическом генерировании строк AJAX :
<tr>
<td></td>
<td><!-- data --></td>
<td><!-- data --></td>
<td><!-- data --></td>
</tr>
$(function()
{
$.ajax({
url:"fetch_books.php",
method:"POST",
dataType:"json",
success:function(data)
{
for(let count=0; count<data.length; count++)
{
let html_data = '<tr><td></td>';
html_data += '<td>'+data[count].id_livre+'</td>';
$('#books-data').append(html_data);
}
}
})
});
Я хочу, чтобы результат был таким же, как когда я вставляю php в каждый столбец таблицы, я даже не знаю, почему у меня возникла эта проблема, мне нужна помощь.
Вы пытались использовать их метод для загрузки JSON вместо собственного JQuery?
От: https://bootstrap-table-docs3.wenzhixin.net.cn/getting-started/#usage-via-javascript
Msgstr «Мы также можем использовать данные удалённого URL, установив url: ‘data1.json’.
$('#table').bootstrapTable({
url: 'data1.json',
columns: [{
field: 'id',
title: 'Item ID'
}, {
field: 'name',
title: 'Item Name'
}, {
field: 'price',
title: 'Item Price'
}, ]
});
<table id="table"></table>
Других решений пока нет …