PHP: Показать диалог подтверждения да / нет

На моей странице PHP есть ссылка, чтобы удалить одну базовую таблицу MySQL. Я хочу, чтобы это было так, что когда я нажимаю ссылку «удалить», появляется окно с подтверждением, и он должен спросить «вы уверены, что хотите удалить?», С двумя кнопками: «да» и «нет», , Когда я нажимаю «Да», я хочу удалить данные таблицы MySQL, и когда я нажимаю «нет», ничего не должно произойти.

Solutions Collecting From Web of "PHP: Показать диалог подтверждения да / нет"

<a href="http://stackoverflow.com" onclick="return confirm('Are you sure?');">My Link</a> 
 <input name="_delete_" type="submit" value="Delete" onclick="return confirm('Are you sure?')"> 

Вы должны всегда использовать кнопку формы / сообщения, чтобы подтвердить что-то подобное. Никогда не полагайтесь на Javascript. Прочтите это, чтобы понять, почему!

Вы можете использовать JavaScript для запроса:

Нашли это здесь – Пример

 <script> function confirmDelete(delUrl) { if (confirm("Are you sure you want to delete")) { document.location = delUrl; } } </script> <a href="javascript:confirmDelete('delete.page?id=1')">Delete</a> 

Другой путь

 <a href="delete.page?id=1" onclick="return confirm('Are you sure you want to delete?')">Delete</a> 

Предупреждение : этот JavaScript не остановит удаление записей, если они просто перейдут к окончательному URL-адресу: delete.page?id=1 в своем браузере

Обычно я создаю страницу удаления, которая показывает форму подтверждения, если метод запроса «GET» и удаляет данные, если метод был «POST», и пользователь выбрал вариант «Да».

Затем, на странице со ссылкой на удаление, я добавляю функцию onclick (или просто использую плагин подтверждения jQuery ), который использует AJAX для публикации по ссылке, минуя страницу подтверждения.

Вот идея в псевдокоде:

delete.php:

 <?php if ($_SERVER['REQUEST_METHOD'] == 'POST') { if ($_POST['confirm'] == 'Yes') { delete_record($_REQUEST['id']); // From GET or POST variables } redirect($_POST['referer']); } ?> <form action="delete.php" method="post"> Are you sure? <input type="submit" name="confirm" value="Yes"> <input type="submit" name="confirm" value="No"> <input type="hidden" name="id" value="<?php echo $_GET['id']; ?>"> <input type="hidden" name="referer" value="<?php echo $_SERVER['HTTP_REFERER']; ?>"> </form> 

Страница со ссылкой на удаление:

 <script> function confirmDelete(link) { if (confirm("Are you sure?")) { doAjax(link.href, "POST"); // doAjax needs to send the "confirm" field } return false; } </script> <a href="delete.php?id=1234" onclick="return confirmDelete(this);">Delete record</a> 

PHP-способ сделать это будет использовать диалоговую систему внутри php.for примера GTKDialogs: http://www.kksou.com/php-gtk2/articles/setup-a-dialog-box—Part-2– -simple-yes-no-dialog.php. Способ javacript, вероятно, немного проще, но помните, когда javascript отключен, это не работает (за исключением того, что вы проверяете javascript для включения, а затем добавляете это !?) Это может быть с обработчиком onclick, как tsvanharen, или с простым текстовым диалогом внутри страницы, а не ворчащим всплывающим окном.

 <a onClick="$('deletefromtable').show();"></a> <div id="deletefromtable" style="display:none;"> Do you really want to do this?<br/> <a href="deleteit.php">Yes</a>|<a onClick="$('deletefromtable').hide();">No</a> </div> 

Я использую прототип (следовательно, тег $ () и show () / hide ()) для него. но вы можете легко изменить его для работы без прототипа:

 <a onClick='document.getElementById("deletefromtable").style.display = "block";' href="#">click here to delete</a> <div id="deletefromtable" style="display:none;"> Do you really want to do this?<br/> <a href="deleteit.php">Yes</a>|<a onClick='document.getElementById("deletefromtable").style.display = "none";' href="#">No</a> </div> 

Опять же, это не работает без javascript, но почти никаких вариантов.

Если вы что-то удаляете, вы всегда должны использовать POST, а не GET, поэтому использование confirm () – плохая идея. То, что я делаю в вашей ситуации, – это использование модального всплывающего окна, например jqModal, и отображение формы с кнопками «да / нет» внутри всплывающего окна.

 onclick="return confirm('Log Out?')? window.open('?user=logout','_self'): void(0);" 

Был ли этот сценарий, а потом я и я тоже смотрю в интернете.
Да, это старая угроза, но, похоже, не похоже на какую-либо подобную версию, я думал, что буду способствовать.
Самый простой и простой способ работает во всех браузерах с / в любом элементе или поле.

Вы можете изменить window.open на любую другую команду для запуска, когда подтверждение TRUE , то же самое с void(0) если конформация NULL или отменена.

Лучший способ, который я нашел, здесь.

HTML-код

 <a href="delete.cfm" onclick="return confirm('Are you sure you want to delete?');">Delete</a> 

ДОБАВИТЬ ЭТОТ В РАЗДЕЛЕ ГОЛОВЫ

 $(document).ready(function() { $('a[data-confirm]').click(function(ev) { var href = $(this).attr('href'); if (!$('#dataConfirmModal').length) { $('body').append('<div id="dataConfirmModal" class="modal" role="dialog" aria-labelledby="dataConfirmLabel" aria-hidden="true"><div class="modal-header"><button type="button" class="close" data-dismiss="modal" aria-hidden="true">×</button><h3 id="dataConfirmLabel">Please Confirm</h3></div><div class="modal-body"></div><div class="modal-footer"><button class="btn" data-dismiss="modal" aria-hidden="true">Cancel</button><a class="btn btn-primary" id="dataConfirmOK">OK</a></div></div>'); } $('#dataConfirmModal').find('.modal-body').text($(this).attr('data-confirm')); $('#dataConfirmOK').attr('href', href); $('#dataConfirmModal').modal({show:true}); return false; }); }); 

Вы должны добавить Jquery и Bootstrap для этого.

<input type="submit" name="submit" value="submit" onclick="return confirm('Are you sure?');"/> вы можете выполнить это действие и на Button!