Sweet Alert Подтвердить перед удалением

Я использую сладкое диалоговое окно для подтверждения удаления.

Если пользователь нажмет «Да» -> Запустить 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 все равно будет работать и удалять запись. Как заставить его выполнять другую функцию при нажатии Да/Нет?

Спасибо за помощь.


person Chun Fatt    schedule 27.07.2016    source источник
comment
comment
Пожалуйста, разделите свой код и используйте для этого ajax.   -  person Anuranjan Pandey    schedule 27.07.2016


Ответы (1)


Это потому, что код PHP выполняется несмотря ни на что. PHP не проверяет, находится ли он внутри скобки JavaScript if. Вы должны сделать эту проверку внутри самого PHP.

Один из способов — заставить кнопку делать запрос AJAX после нажатия кнопки подтверждения. Другой - просто использовать простой POST при нажатии (что, я думаю, вам не нужно, поэтому AJAX будет лучше).

person Janno    schedule 27.07.2016