PHP эхо не показывает всплывающее окно SweetAlert2 - PullRequest
0 голосов
/ 04 марта 2020

Я пытаюсь вывести окно сообщения SweetAlert2, когда пользователь оставляет поле ввода имени пользователя / пароля пустым.

if(empty($_POST["username"]) || empty($_POST["password"]))  
       {  
           echo '<script language="javascript">';
           echo 'Swal.fire({
                          type: \"error\",
                          title: \"Oops...\",
                          text: \"Please provide login credentials!\"
                          })';
           echo '</script>'; 
       }  

Я включил \ для экранирования кавычек, но окно сообщения вообще не появляется , Есть идеи?

1 Ответ

0 голосов
/ 04 марта 2020

Чтобы избежать большого количества экранирования, я обычно пишу большие HTML блоки внутри PHP, например:

<?php
if(empty($_POST["username"]) || empty($_POST["password"])) {
?>
<script>
    Swal.fire({
        type: "error",
        title: "Oops...",
        text: "Please provide login credentials!"
    });
</script>
<?php } ?>

Ваш код не выдает действительный JavaScript, потому что экранирование \ не нужно и для этого будет выведено. Движок JavaScript вашего браузера не знает, каким должен быть type: \"error\", и, вероятно, вы увидите ошибку в консоли.

Обязательно включите SweetAlert2 ПЕРЕД вашим кодом для отображения предупреждения (пример использования CDN):

<script src="https://cdn.jsdelivr.net/npm/sweetalert2@9"></script>

Может быть, у вас есть это включение в нижней части вашего тела, но ваше состояние находится в середине вашей страницы?

РЕДАКТИРОВАТЬ: Атрибут language для HTML <script/> элемент устарел и должен быть пропущен.

...