在 PHP 中调用自定义 JS 警报
Call custom JS alert inside PHP
我使用自定义警报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>
您的 html 正在从上到下加载。
将swal()
声明移动到标头,以便可以在正文中的任何位置使用它。
所以你的PHP回显可能是在你声明swal()
之前
例:
<script>swal('Does not work');</script>
<script>
var swal = function(txt){
alert(txt);
}
</script>
<script>swal('Works');</script>
alert();
起作用的原因是因为它适用于整个文档。
在第一个示例中,您将始终收到警报,因为您编写它的方式,字符串永远不会为空。您应该检查它是否创建了一个有效的文件路径,而不是检查字符串是否为空(它永远不会是)。使用 file_exists()
而不是 empty()
。
我敢打赌,问题是您生成的文件路径不正确。
编辑 - 我不允许发表评论,但为了回应另一个答案 - 将 JS 放在标题中是一种不好的做法。它会减慢页面加载速度。如果这确实是问题,您应该在页脚中放置一个onload调用,并将所有javascript放入其中。
window.onload = function(){
// Put codes here
};
以便在执行任何脚本之前加载页面内容。
也就是说,这不是您遇到的问题,因为您说手动将swal()
呼叫放入身体是有效的。
相关文章:
- PHP中的JS.警报没有'不要出现
- 无法在JS警报框中转义php变量
- 尝试在网站上以形式注入JS?- 警报(“TK00000025”)
- JS警报在ColdFusion中不起作用
- 将 JS 警报添加到邮件链接
- 在 PHP 中调用自定义 JS 警报
- 在某些情况下显示 JS 警报
- Twitter Bootstrap 样式的默认 JS 警报
- Rails:呈现 JS 警报
- 是否可以将 HTML 嵌入到警报.js警报中
- 显示“未定义”的 JS 警报
- 如何将数据从 js 警报框获取到标签中
- 设置在 jQuery UI 对话框中弹出的 JS 警报的样式
- 在样式模式 (jQuery UI) 窗口中显示 JS 警报
- 在ios7的UIWebView中禁用js警报
- 使用 jQuery 将 XML 加载到 JS 变量中,而不带 JS 警报
- ASP.net C# 从另一个线程返回 JS 警报
- 使用Sharepoint列表值时未显示JS警报
- js警报之后的页面重定向-include和header的替代选项
- js警报框中的资源文件变量给出字符串ASCII代码问题