我使用自定义提醒javascript。我想在php中调用这个javascript。我得到了一个基本的警报工作,但我不能让自定义的工作。
此代码有效。如果我的文件路径为空,它会打开一个警告窗口
<?php
$albums_json_file1 = site_path . DIRECTORY_SEPARATOR . 'users' . DIRECTORY_SEPARATOR . $username . DIRECTORY_SEPARATOR . 'main.json';
if (!empty($albums_json_file1))
echo "<script type='text/javascript'>alert('message')</script>"
?>
此代码不起作用
<?php
$albums_json_file1 = site_path . DIRECTORY_SEPARATOR . 'users' . DIRECTORY_SEPARATOR . $username . DIRECTORY_SEPARATOR . 'main.json';
if (!empty($albums_json_file1))
echo "<script> swal('REGISTRATION SUCCESS!', 'You are now being redirected to the payment screen!', 'success'); </script>"
?>
在我的网页中,我有自定义警报的脚本源,如果我只是在我的网页中添加此代码,则弹出警报可以正常工作但是我需要它来检查站点路径并仅在它为空时返回警报。
这是常规脚本。如果我把它放在我的网页正文中,则会弹出警告。
<script>
swal("REGISTRATION SUCCESS!", "You are now being redirected to the payment screen!", "success");
</script>
答案 0 :(得分:3)
你的html从上到下加载。
将swal()
的声明移到标题中,以便可以在正文中的任何位置使用。
所以你的PHP回声可能在你声明swal()
示例:强>
<script>swal('Does not work');</script>
<script>
var swal = function(txt){
alert(txt);
}
</script>
<script>swal('Works');</script>
alert();
的作用原因是因为它适用于整个文档。
答案 1 :(得分:2)
在您的第一个示例中,您将始终收到警报,因为您编写它的方式,字符串永远不会为空。你应该检查它是否创建了一个有效的文件路径,而不是检查字符串是否为空(它永远不会是)。使用file_exists()
代替empty()
。
我愿意打赌问题是您生成的文件路径不正确。
编辑 - 我不被允许发表评论,但是为了回应另一个答案 - 把JS放在标题中是不好的做法。它会减慢页面加载速度。如果这确实是问题,你应该在页脚中加载一个onload调用并将所有的javascript放在其中。window.onload = function(){
// Put codes here
};
以便在执行任何脚本之前加载页面内容。
那就是说,这不是你所遇到的问题,因为你说你的swal()
电话正文是手动的。