当前位置: 首页 > 面试题库 >

如何从PHP调用JavaScript函数?

谢志文
2023-03-14
问题内容

如何从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等。



 类似资料:
  • 问题内容: 有没有办法可以通过JS函数运行php函数? 像这样的东西: 我基本上想运行php函数,当我单击名为“ Test”的href时,它将调用php函数。 问题答案: 本质上,这就是AJAX的作用。页面加载,然后将事件添加到元素。当用户导致事件被触发时(例如,单击某些内容),您的Javascript使用XMLHttpRequest对象将请求发送到服务器。 服务器响应后(大概带有输出),另一个J

  • 问题内容: 我熟悉如何使ajax转到php页面并执行一系列操作,然后返回json数据。但是,可以调用驻留在给定页面中的特定函数吗? 基本上我想要的是减少项目中的文件数。因此,我可以将很多常用功能放在一页中,然后立即调用我想要的任何功能。 问题答案: 对于ajax请求 1.在您的网页中包含Jquery库。例如: 2.点击按钮调用功能 3.点击按钮,调用JavaScript创建函数。 在服务器端的te

  • 问题内容: 我正在尝试从外部PHP文件将JavaScript函数调用为JavaScript脚本。我的代码又大又不同,所以我在这里编写示例代码。 这是我的PHP代码: 这是我的JavaScript代码: 这就是我想要做的。 我 原来的 PHP文件不包含这些数学函数,但是想法是相同的。 如果一些它怎么没有一个妥善的解决办法,那么可能你 请 提出一种替代,但它应该从外部PHP调用值。 问题答案: 是的,

  • 问题内容: 我正在做一个网络抓取项目。我正在使用的网站之一的数据来自Javascript。 在我之前的一个问题中,有人建议我可以直接从Python调用Javascript,但是我不确定如何实现。 例如:如果JavaScript函数定义为: 如何从Python调用JavaScript函数? 问题答案: 查找具有Python绑定的JavaScript解释器。(尝试Rhino?V8?SeaMonkey?

  • 问题内容: 我想从JavaScript 调用,这是一个C#函数。我尝试了下面的代码,但是无论JavaScript条件是还是,都被调用了! JavaScript代码: 后面的C#代码: 如何从JavaScript调用C#函数? 问题答案: 您可以使用Web方法和Ajax:

  • 问题内容: 是否可以从Javascript调用Java(GWT)方法?从文档中也不清楚。http://code.google.com/intl/zh- CN/webtoolkit/doc/latest/DevGuideCodingBasicsJSNI.html上的 所有示例都演示了如何从JSNI(而非JS)函数调用Java函数。 更新1 这是一个Java代码: 这是html中的呼叫者按钮示例: 这