PHP回声未显示SweetAlert2弹出窗口

时间:2020-03-04 13:27:03

标签: javascript php echo sweetalert sweetalert2

当用户将用户名/密码输入框留空时,我正在尝试输出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 :(得分:0)

为避免大量转义,我通常在PHP内编写较大的HTML块,如下所示:

<?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>

也许您的身体底部有这个包含物,但您的状况却在页面中间?

编辑:HTML language元素的<script/>属性为deprecated,应省略。