如何从 PHP 调用 JavaScript 函数?
<?php jsfunction(); // or echo(jsfunction()); // or // Anything else?
以下代码来自 xyz.html (单击按钮),它wait()在外部 xyz.js 中调用 a 。这wait()调用了wait.php。
wait()
function wait() { xmlhttp=GetXmlHttpObject(); var url="wait.php"; \ xmlhttp.onreadystatechange=statechanged; xmlhttp.open("GET", url, true); xmlhttp.send(null); } function statechanged() { if(xmlhttp.readyState==4) { document.getElementById("txt").innerHTML=xmlhttp.responseText; } }
和 wait.php
<?php echo "<script> loadxml(); </script>";
whereloadxml()以同样的方式从另一个 PHP 文件调用代码。
loadxml()
loadxml()否则工作正常,但它没有按我想要的方式调用。
就 PHP 而言(或者实际上是一般的 Web 服务器),HTML 页面只不过是一个大字符串而已。
您可以使用 PHP 之类的语言完成的所有花哨的工作——从数据库和 Web 服务读取等等——最终的最终目标是完全相同的基本原则:生成一串 HTML*。
在 Web 浏览器加载之前,您的大 HTML 字符串不会变得比这更特别。一旦浏览器加载页面,所有其他的魔法 就会 发生——布局、盒子模型的东西、DOM 生成和许多其他的事情,包括 JavaScript 执行。
因此,您不是“从 PHP 调用 JavaScript”,而是“在输出中包含 JavaScript 函数调用”。
有很多方法可以做到这一点,但这里有几个。
仅使用 PHP:
echo '<script type="text/javascript">', 'jsfunction();', '</script>' ;
从php模式转义到直接输出模式:
<?php // some php stuff ?> <script type="text/javascript"> jsFunction(); </script>
您不需要返回函数名称或类似名称。首先,停止手动编写 AJAX 请求。你只会让自己很难受。获取 jQuery 或其他优秀的框架之一。
其次,了解一旦收到来自 AJAX 调用的响应,您就已经将执行 javascript 代码。
这是我认为您使用 jQuery 的 AJAX 所做的示例
$.get( 'wait.php', {}, function(returnedData) { document.getElementById("txt").innerHTML = returnedData; // Ok, here's where you can call another function someOtherFunctionYouWantToCall(); // But unless you really need to, you don't have to // We're already in the middle of a function execution // right here, so you might as well put your code here }, 'text' ); function someOtherFunctionYouWantToCall() { // stuff }
现在,如果您对将函数名称从 PHP 发送回 AJAX 调用一无所知,您也可以这样做。
$.get( 'wait.php', {}, function(returnedData) { // Assumes returnedData has a javascript function name window[returnedData](); }, 'text' );