Я использую сладкий диалог для подтверждения удаления.
Если пользователь нажимает «Да» -> Запустить SQL для удаления.
Если пользователь нажимает «Нет» -> «Ничего не делать», ведите запись.
<?php
if(isset($_POST['button_delete'])) {
echo '<script type="text/javascript">';
echo 'setTimeout(function (){swal({
title: "Are you sure?",
text:"You will not be able to recover this course!",
type: "warning",
showCancelButton: true,
confirmButtonColor: "#DD6B55",
confirmButtonText: "Yes, delete it!",
cancelButtonText: "No, cancel please!",
closeOnConfirm: false,
closeOnCancel: false},
function(isConfirm)
{
if(isConfirm)
{
swal("Deleted!", "Your file has been deleted.", "success");';
$deleteCourse = mysqli_real_escape_string($conn, $_POST['button_delete']);
$user = mysqli_real_escape_string($conn, $_SESSION['session_user']);
mysqli_query($conn, "DELETE FROM enroll
WHERE CourseCode LIKE '$deleteCourse'
AND UserID=$user");
echo '
}
else
{
swal("Cancelled", "Your file is safe.", "error");
}})}, 100);';
echo '</script>';
?>
Независимо от того, нажимаю ли я «Да» или «Нет», SQL все равно будет запускаться и удалять запись. Как заставить это делать разные функции при нажатии Да / Нет?
Спасибо за помощь.
Это потому, что код PHP выполняется независимо от того, что. PHP не проверяет это, если он находится внутри JavaScript, если скобка. Вы должны сделать эту проверку внутри самого PHP.
Один из способов — заставить кнопку сделать запрос AJAX после нажатия кнопки подтверждения. Другой — просто использовать простой POST при нажатии (что, я думаю, вам не нужно, поэтому AJAX будет лучше).
Других решений пока нет …