我想知道这是否是我可以做的事情。我有一个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";
}
}
}
}
答案 0 :(得分:1)
确定。我认为现在可以看到清晰的画面。
没有。这不可能。您无法从服务器端PHP脚本调用客户端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>