Привет! Из базы вывожу на страницу в таблицу и у каждой записи есть кнопка Del. При нажатии на Del всплывает сообщение в модальном окне "Вы уверены?" и кнопки Да/Нет. Вызов окна PHP: <a href="#del" data-toggle="modal"> <img src="assets/img/del.png"></a> само окно PHP: <div class="modal fade" id="del" tabindex="-1" role="dialog" aria-labelledby="exampleModalLabel" aria-hidden="true"> <div class="modal-dialog" role="document"> <div class="modal-content"> <div class="modal-header"> <h4 class="modal-title" id="exampleModalLabel">Внимание!</h4> </div> <div class="modal-body"> <br>Вы уверены? </br> '.$row['id'].' //просто сделал вывод для проверки </div> <div class="modal-footer"> <button type="button" class="btn btn-primary" >Да</button> <button type="button" class="btn btn-secondary" data-dismiss="modal">Нет</button> </div> </div> </div> </div> Помогите передать в модальное окно .$row['id']. Каким образом надо изменить ссылку на вызов окна, чтобы удалялась из базы запись с определенным id?
@avaya, bootstrap, однако... Разберите пример: Varying modal content И не пропустите js под html разметкой.
для подтверждения я обычно использую системное окошко Код (Javascript): if(confirm('Удалить')){ return true; } return false; а так то передавайте от объекта к объекту на странице данные через атрибут data или через какую то глобальную JS переменную..
На страницу из БД выводится в табличном видео инфа. И напротив каждой позиции в таблице есть кнопка Удалить. При нажатии необходимо спросить пользователя уверен ли он в том, что делает. Вот окно с подтверждением выскакивает. Но в переменной id хранится номер самой первой записи в БД. А не той записи, которую предполагается удалить. Использовать if(confirm('Удалить')){ return true; } return false; не хочу по причине наличия галочки в окошке "Больше не показывать на этой странице". Поэтому и приходится изворачиваться с модальным окном
я все равно не понимаю в чем проблема))) 1. к примеру у кнопки УДАЛИТЬ есть класс .delete и атрибут data-id = $row['id'] 2. слушаем событие click на этом классе 3. Поймали событие - вывели модалку - спросили.. если получили true 4. То отрявляем AJAX на сервер с $(this).data('id')
Передавайте айдишник, например, <a href="#del" data-toggle="modal" id="1111111111"><img src="assets/img/del.png"></a>
<a href="#del" data-toggle="modal" id='.$row['id'].'><img src="assets/img/del.png"></a> не срабатывает
Я например для передачи чего то в модальное окно делаю так, например при нажатии: Код (Javascript): $("#select_user").click(function() { var val = $("select#select_user").val(); $('#input').attr('data1', val); }); То есть где то в модальном окне есть кнопка с id="input" создаю там атрибут data1 и передаю туда то что надо. В данном случае что то с списка селект. p.s. естественно это можно сделать без jquery.
В js вообще не смыслю. Алгоритм то понятен. Но как написать я не знаю --- Добавлено --- А код кнопки как выглядит при этом? Подробнее можете показать?
так бы в стартпосте и написали, что не понимаю, помогите, напишите, очень надо)) К тому же вы вопрос задает как удалить, но не приводите весь код, там же еще должен быть код, который гетом или постом передает на удаление и который управляет окном
@avaya, вам нужно на пыхе прописывать id «при вызове модального окна», а уже «в коде модального окна» использовать JS-переменную или считывать на JS значение напрямую оттуда, где оно было прописано пыхом. В теме уже были примеры.
В том примере у кнопок вызова модального окна (аналог Вашего Del) есть атрибут data-whatever. В js обработка события show.bs.modal. Первой строчкой функции-обработчика определяется, по какой кнопке вызвано модальное окно. Второй - данные из атрибута data-whatever... впрочем, там черным по белому в комментарии написано
ок. пишу, помогите, пожалуйста, балбесу. Напишите, очень надо. Хочу немного упростить себе работу, чтобы в экселе не вести эту базу (файл использую несколько человек и частенько кто-то его блокирует).
как бы так должно добавить в окно айди с ссылки: <script> $('.modal fade').on('show.bs.modal', function () { $('.modal-body').text($(this).attr('id')); }); </script>
настроен, но в связи с тем, что его в нашем офисе приходится открыть через терминал, а в других офисах просто в сетевого диска, то иногда какой-либо сотрудник блокирует файл и не дает другим редактировать его 9системщики по-другому не могут настроить). Да и сама таблица в экселе выглядит отвратительно. Не могу показать, к сожалению, коммерческая тайна.
@avaya, тогда действительно проще не модальным окном сделать, а повесить на onclick кнопки Del системный запрос подтверждения (о чем говорится в сообщении 3). Пример
вот так добавит <script> $('.modal fade').on('show.bs.modal', function (e) { $('.modal-body').text($(e.relatedTarget).attr('id'));}); </script> да, проще по клику удалить и все, а так надо будет запустить окно, вставить данные, отловить клик, закрыть окно, удалить данные
Тоже не сработало. Ладно, если делать простым алертом, то эту галочку можно убрать? Не хочу, чтобы кто-то из бухгалтерии или хоз.отдела поставил галочку и потом начал жаловаться, что "что-то поломалось в программе"
@avaya Вот такой трюк как передать php код в атрибут кнопки и вывести в консоль, дальше сам думай: PHP: <?php $test="привет"; echo '<!DOCTYPE HTML> <html lang="ru"> <head> <meta charset="UTF-8"/> <title>тест</title> </head> <body> <button id="ok" data="'.$test.'">ок</button> <script> console.log(ok.getAttribute("data")); </script> </body>'; ?> В твоем случае, чтоб точно понял: PHP: echo '<button type="button" class="btn btn-primary" id="yes" data="'.$row['id'].'">Да</button> <script> yes.onclick = function() { console.log(yes.getAttribute("data")); }; </script>'; ?> Консоль в браузере F12 если что.