在 PHP 中调用自定义 JS 警报

Call custom JS alert inside PHP

本文关键字:JS 警报 自定义 调用 PHP      更新时间:2023-09-26

我使用自定义警报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()呼叫放入身体是有效的。