当用户将用户名/密码输入框留空时,我正在尝试输出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>';
}
我包含了\以转义引号,但根本没有出现任何消息框。有什么想法吗?
答案 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,应省略。