从php页面内的js文件调用函数

时间:2013-12-06 13:58:36

标签: javascript php jquery function

我有一个像“my_js_stuff.js”这样的文件,如下所示:

function my_js_function() 
 {
 jQuery.ajax({
 url: my_ajax_script.ajaxurl,
 data: ({action : 'get_my_comments'}),
 success: function() {
  //Do stuff here
 }
 });

此文件包含在我的  <header>是这样的:<script type="text/javascript" src="my_js_stuff.js"></script>

我想在我的php页面中从“my_js_stuff.js”调用该函数,我想这样称呼它:

<?php

<script type="text/javascript>
   $('.some-class').on('click', my_js_function()); // this is the function from the js file.
</script>

?>

这是从js文件调用函数的正确方法吗?

谢谢!

3 个答案:

答案 0 :(得分:0)

你对这些技术感到困惑。您的JS用于客户端(浏览器),PHP用于服务器端(业务逻辑)。

你不能从PHP内部调用JS函数。

但是,假设你想要传达JS&gt; PHP,您需要在页面上包含JS。

<script type="text/javascript?>
   $('.some-class').on('click', my_js_function()); // this is the function from the js file.
</script>

并且您的URL需要与PHP端点匹配:

url: my_ajax_script.ajaxurl, // This should be the path of your PHP file

在php文件中,您可以获得所有信息,就像它是正常的请求一样:

<?php
    echo $_GET['action'];
?>

这会将$ _GET ['action'] var返回给你的JS成功函数:

success: function(data) {
    alert('Received: ' + data);
}

希望您可以使用此信息来构建您需要的内容。

答案 1 :(得分:0)

  

这是从js文件调用函数的正确方法吗?

my_js_function()肯定是调用它的正确方法。

但是,要传递function以便事件可以稍后调用它,您将要跳过调用括号:

$('.some-class').on('click', my_js_function);

使用它们,它将立即被调用,而它的return值将被传递给事件绑定。


另请注意,<script>不应位于<?php ... ?>区块内,除非string位于echo内。

<?php
    # ...
?>

<script>
    $('.some-class').on('click', my_js_function);
</script>

<?php
    # ...
?>

答案 2 :(得分:0)

你可以这样做,但我不确定那是你真正想要做的。 Javascript在客户端执行,而PHP在服务器上执行。您的Ajax函数发出请求(客户端到服务器)并从服务器获取内容,例如从PHP文件生成的动态内容。

如果您所描述的内容确实是您想要做的,则需要echo您的脚本代码段并将其括在引号中。

<?php

echo '<script type="text/javascript">/*js content*/</script>';

?>