@AlexSer

Как разобраться с кнопками Ajax Jquery?

Выводиться список книг и кнопки для каждой строки(для удаления)
<table class="table" id="choose">
    <thead>
    <tr>
        <th>#</th>
        <th>Книги</th>
        <th></th>
        <th>Действия</th>
    </tr>
    </thead>
<tbody>
    <?php
    foreach ($model->Book as $item){
        echo '<tr>';
        echo '<td>';
        echo '</td>';
        echo '<td>';
        echo \frontend\models\Title::findOne($item)->title;
        echo '</td>';
        echo '<td>';
        echo '</td>';
        echo '<td>';
        echo '<button class="btn btn-link" id="remove"  key='.$item->id.'><i class="glyphicon glyphicon-remove" style="color: red"></i></button>';
        echo '</td>';
        echo '</tr>';
    }
    ?>
</tbody>
</table>

Когда я обращаюсь к кнопке через JQuery
$('#remove').click(function(){

});
для удаления выбранной записи, кнопка срабатывает только на первой строчке, на остальных просто никак...
Что не так делаю. Понимаю из за цикла несколько экземпляров кнопки с одинаковыми id=remove. но как сделать чтобы работали кнопки на любой строчке не понимаю
  • Вопрос задан
  • 60 просмотров
Решения вопроса 4
@Mindgrow
Назначай обработчик клика не через id=remove а через класс
таким образом получится
$('.remove').click(function(){

});

и у соответствующих кнопок установи нужный класс
Ответ написан
Комментировать
Eridani
@Eridani
Мимо проходил
Понимаю из за цикла несколько экземпляров кнопки с одинаковыми id=remove

Ну и? Вывод то сделали?
Выбирайте кнопку по классу, используйте $(this) и тащите идентификатор из data-id, или там у Вас key, который аяксом и передадите в обработчик
Ответ написан
Комментировать
Stalker_RED
@Stalker_RED
несколько экземпляров кнопки с одинаковыми id=remove
Садитесь, два.

Using The id Attribute
The id attribute specifies a unique id for an HTML element (the value must be unique within the HTML document).
https://www.w3schools.com/Html/html_id.asp

Если непонятно, вот по простому: id должен быть уникальным в пределах страницы. Если их несколько одинаковых - это ошибка, и в лучшем случае сработает первый попавшийся (но это не точно).
Ответ написан
Комментировать
alex-1917
@alex-1917
Если ответ помог, отметь решением
$('.to_remove').click(function(){
   key = $(this).attr('key');
   // вот тут у тебя уже есть уникальный кей, 
   //используй его по назначению и не переусердствуй, 
   //а то кей обидится и станет окей-оби...
});
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы