我有一个像“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文件调用函数的正确方法吗?
谢谢!
答案 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>';
?>