Переадресация страницы после нажатия OK с помощью Sweetalert

Я пытался перенаправить, но это не работает. Кто-нибудь может мне помочь?

if(isset($_POST['submit'])){
    if(send_report($_POST['id_truck'], $_GET['id'])){
        echo '<script type="text/javascript">';
        echo 'setTimeout(function () { swal("Success!","data successfully added","success");';
        echo '}, 200); window.location.href = 'report.php' </script>';
    } else {
        echo '<script type="text/javascript">';
        echo 'setTimeout(function () { swal("failed!","Something wrong","warning");';
        echo '}, 200), ;</script>';
    }
}

1 ответ

Вы используете одинарные кавычки в строке, заключенной в одинарные кавычки, избегайте их:

 echo '}, 200); window.location.href = \'report.php\' </script>';

Редактировать:

Теперь, когда ваша страница перенаправляется, ваш подсластитель будет работать, но вы не сможете его увидеть.

swal() возвращает Promise, который будет решен, когда вы нажмете кнопку OK в Sweetalert, и поэтому нам придется ждать, пока он перенаправит страницу после этого:

echo '<script type="text/javascript">';
echo 'setTimeout(function () {';
echo 'swal("Success!","data successfully added","success").then( function(val) {';
echo 'if (val == true) window.location.href = \'report.php\';';
echo '});';
echo '}, 200);  </script>';
Другие вопросы по тегам