如何从PHP调用JavaScript函数?

如何从PHP调用JavaScript函数?

<?php

jsfunction();

// or

echo(jsfunction());

// or

// Anything else?

以下代码来自 xyz.html (单击按钮时),它wait()在外部 xyz.js中 调用a 。这wait()将调用wait.php。

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>";

loadxml()从那里以同样的方式从另一个PHP文件调用代码。

loadxml()否则工作正常,但它不会被调用我想要的方式。

回答:

就PHP而言(或者实际上,通常是一个Web服务器),HTML页面只不过是一个大字符串而已。

您可以使用PHP之类的语言完成所有花哨的工作-从数据库和Web服务中读取信息以及所有这些-最终目的是完全相同的基本原理:生成HTML *字符串。

大的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'

);

*或JSON或XML等。

以上是 如何从PHP调用JavaScript函数? 的全部内容, 来源链接: utcz.com/qa/434107.html

回到顶部