在jQuery脚本中使用PHP是否可以?

时间:2011-06-22 05:51:12

标签: php jquery function

例如:

$(document).ready(function(){
    $('.selector').click(function(){
        <?php
        // php code goes here
        ?>
    });
});

这会导致问题或减慢页面速度吗?这是不好的做法吗?有什么重要的事情我应该知道吗?

谢谢!

7 个答案:

答案 0 :(得分:13)

如果您尝试使用click事件绑定某些PHP代码,那么这就不可能以您尝试的方式进行,并且只要页面加载就会执行PHP代码而无需等待单击事件。

如果您尝试使用PHP生成最终的javascript或jquery代码,那么这没关系。

答案 1 :(得分:7)

它不会减慢页面速度; PHP在服务器上运行并发送文本,发送到浏览器,就像在任何PHP页面上一样。这是不好的做法吗?我不会说“坏”,但不是很好。这会导致代码混乱 - 如果我需要做这样的事情,我通常会尝试将其分解,如:

<script>
    var stuff = <?php print $stuff; ?>;
    var blah = "<?php print $blah; ?>";

    // Do things in JS with stuff and blah here, no more PHP mixed in
</script>

答案 2 :(得分:4)

PHP在服务器上执行,然后javascript将在客户端上执行。所以你在这里做的是使用php生成将成为函数体的javascript。如果这就是你想要做的事情,那么做这件事并没有错。

如果你以为你要从javascript调用一些PHP代码,那么你就错了。您需要将PHP代码放在单独的页面中,并使用ajax请求来获取结果。

答案 3 :(得分:3)

当然,只要您记住在发送页面之前服务器将执行 PHP代码。除此之外,玩得开心。

答案 4 :(得分:3)

在处理点击事件时,你有更好的选择使用运行php脚本的ajax

$(document).ready(function(){
    $('.selector').click(function(){
       $.ajax({url:"phpfile.php",type:"POST",
data:"datastring="+value+"&datastring2="othervalue,

,success:function(data){
//get the result from the php file after it's executed on server
}

});
    });
});

答案 5 :(得分:2)

PHP是一种“后端”语言,javascript是一种“前端”语言。简而言之,只要PHP代码是通过一个理解PHP的Web服务器加载的 - 缺点就是你必须内联JS,失去缓存能力(在.js文件中有解析php的解决方法,但你不应该真的做这个)。对用户来说,它看起来就像是javascript和HTML。这是服务器订单:

  1. 用户请求页面。
  2. Apache(或同等版本)注意到这一点 是一个php文件。它然后呈现所有 php标签之间的php。
  3. Apache将页面发送给用户。
  4. 用户的浏览器会看到JavaScript 并执行它。
  5. 确保PHP输出有效的JavaScript。

答案 6 :(得分:1)

不,不是。只要您知道在解析PHP页面后执行JS即可。