Подтвердить что ты не робот

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

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

4b9b3361

Ответ 1

<a href="http://stackoverflow.com" 
    onclick="return confirm('Are you sure?');">My Link</a>

Ответ 2

<input name="_delete_" type="submit" value="Delete" onclick="return confirm('Are you sure?')">

Ответ 3

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

Ответ 4

Вы можете использовать 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 в своем браузере.

Ответ 5

Обычно я создаю страницу удаления, которая показывает форму подтверждения, если метод запроса "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>

Ответ 6

Попробуй это:

<td>
    <a onclick="return confirm(\'Are you sure?\');" href="'.base_url('category/delete_category/'.$row->category_id).'" class="btn btn-danger btn-sm"><i class="fa fa-trash"></i> Delete Coupon</a>
</td>

Ответ 7

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, но почти никаких параметров нет.

Ответ 8

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

Ответ 9

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

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

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

Ответ 10

Лучший способ найти это здесь.

HTML-код

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

ДОБАВИТЬ ЭТОТ НА СЕБЯ HEAD

$(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 для этого.

Ответ 11

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

Ответ 12

Я также искал способ сделать это и выяснил это, используя формы и атрибут formaction:

<input type="submit" name="del_something" formaction="<addresstothispage>" value="delete" />
<?php if(isset($_POST['del_something'])) print '<div>Are you sure? <input type="submit" name="del_confirm" value="yes!" formaction="action.php" />
<input type="submit" name="del_no" value="no!" formaction="<addresstothispage>" />';?>

action.php проверит наличие isset ($ _ POST ['del_confirm']) и вызовет соответствующий скрипт php (для действий с базой данных или чего-либо еще). Вуаля, никакой JavaScript не требуется. Используя атрибут formaction, кнопка удаления может быть частью любой формы и при этом вызывать другое действие формы (например, вернуться к той же странице, но с установленной кнопкой).

Если кнопка была нажата, отобразятся кнопки подтверждения.

Ответ 13

<a onclick="javascript:return confirm('Are You Confirm Deletion');" href="delete_customer.php?a=<?php echo $row['id']; ?>"  class="btn btn-danger a-btn-slide-text" style="color: white; width:86px; height:37px;" > <span class="glyphicon glyphicon-remove" aria-hidden="true"></span><span><strong></a></strong></span>