从php脚本调用JavaScript函数

时间:2016-10-04 18:16:55

标签: javascript php function

我想知道这是否是我可以做的事情。我有一个PHP脚本需要调用我在主index.php中定义的函数。

在我的其他PHP文件中,我有:

echo "<script>ShowModal('PopUpNameItem','closeNameItem');</script>";

在我的主index.php里面我有这个功能。我如何从单独的脚本中实际调用它?通常你会使用这样的东西,但因为我的文件是.php,我可以这样做吗?

<script type="text/javascript" src="ajax.js"></script>

这就是我试图打电话的功能

function ShowModal(popup, closeBtn) {
        var modal = document.getElementById(popup);
        var span = document.getElementsByClassName(closeBtn)[0];
        modal.style.display = "block";
        span.onclick = function() {
            modal.style.display = "none";
        }
        if (modal != "PopUpNameItem") {
            window.onclick = function(event) {
            if (event.target == modal) {
                modal.style.display = "none";
            }
        }
    }
}

2 个答案:

答案 0 :(得分:1)

确定。我认为现在可以看到清晰的画面。

没有。这不可能。您无法从服务器端PHP脚本调用客户端javascript方法。

在网络应用程序中有一些方面:

  • 客户端(在您的情况下是其Web浏览器,可以使用从服务器接收的html / css和javascript +数据)
  • 服务器端可以处理任何事情(在您的情况下是PHP)并生成html / css,javascript和数据。

现在,服务器端的index.php由Web服务器处理,并生成服务器发送给客户端的index.html。客户端打开此文件并加载/执行其中定义的所有脚本,样式。它创建了文档结构。所有这些现在都存在于客户端。

但是,服务器端没有指向客户端上下文的直接链接。因此,有两种方法可以通过服务器处理来运行此方法。

1)向服务器发送ajax请求,并根据结果执行该方法。

2)如果您不想处理ajax cal逻辑,您可以执行脚本插入方法。它是如何工作的,当按下按钮时你会做这样的事情:

var scriptRef = document.createElement('script');
scriptRef.setAttribute('src','url_to_script.php');
document.head.appendChild(scriptRef);

它会做什么,它将动态地将脚本标记附加到您的文档并加载脚本内容作为您的PHP脚本输出的结果。在那里,您可以决定启动该方法或执行其他操作。

然而,脚本插入有点令人头疼,不应该在长时间运行的页面上使用(在我看来),因为它实际上每次按下按钮时都会添加一个新脚本。并且您有责任跟踪并删除它。

答案 1 :(得分:0)

只要您以JavaScript格式正确显示您的功能 你可以打电话:

<script type="text/javascript" src="ajax.php"></script>