#php #html #ajax #datatable #codeigniter-2
#php #HTML #ajax #datatable #codeigniter-2
Вопрос:
У меня есть динамически заполняемая таблица с 2 кнопками, повторяющимися для всех строк, одно удаление и одно изменение. Я хочу, чтобы нажатие клавиши delete вызывало функцию ajax, которая позволяет мне печатать значение, связанное с этой кнопкой, которое всегда отличается.
Ajax
$("#bt_elimina").on('click',function() {
var adress = $(".bt_elimina").val();
alert(adress);
});
Html / php
<!--stampo la tabella $query è il risultato della query passato dal controller movimentoDiMagazzino_controller.-->
<table id="tabella" class="table table-striped table-bordered" cellspacing="0" width="100%">
<thead>
<tr>
<th>Codice Farmaco</th>
<th>Nome Farmaco</th>
<th>Quantità</th>
<th>Quantità di alert</th>
<th></th>
</tr>
</thead>
<?php foreach ($query as $row): ?>
<tr>
<td><?php echo $row->aic; ?></td>
<td><?php echo $row->denominazione; ?></td>
<td><?php echo $row->quantita; ?></td>
<td><?php echo $row->alert; ?></td>
<td>
<button id="bt_modifica"
class="btn btn-default btn-xs"
data-toggle="tooltip"
data-placement="top"
title="">
<img src="<?php echo base_url(); ?>template/images/Modifica.png">
</button>
<button id="bt_elimina"
class="btn btn-default btn-xs"
data-toggle="tooltip"
data-placement="top"
title=""
value="<?php echo $row->aic; ?>">
<img src="<?php echo base_url(); ?>template/images/Elimina.png">
</button>
</td>
</tr>
<?php endforeach; ?>
</tbody>
</table>
Вызов ajax работает только для первой кнопки, затем он больше не работает, и в результате кнопки умирают.
Я считаю, что проблема связана с тем, что все кнопки имеют одинаковый идентификатор, но как я могу это исправить? Если я ставлю ajax на класс, а не на идентификатор кнопки, я могу выполнить вызов, но я не могу напечатать значение кнопки.
Заранее спасибо
Комментарии:
1. у вас есть
id="bt_elimina"
и у вас есть щелчок по классу$(".bt_elimina").on('click'
???2. Моя ошибка при написании этого сообщения.
Ответ №1:
Сначала вы должны использовать идентификаторы только один раз. Вы используете один и тот же идентификатор для каждой строки таблицы. Если вы нажмете на любую из них, она всегда будет ссылаться на первую. Это потому, что должен быть только один идентификатор, и javasript не будет смотреть дальше, чем первый.
Измените идентификатор id="bt_elimina"
на class="bt_elimina"
.
После этого я бы изменил javascript на:
$("#tabella").on('click', '.bt_elimina', function( evt ) {
var adress = $(this).val();
alert(adress);
});
Это должно сделать свое дело