【问题标题】:Is it okay to use PHP inside a jQuery script?可以在 jQuery 脚本中使用 PHP 吗?
【发布时间】:2011-06-22 05:51:11
【问题描述】:

例如:

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

这会导致问题或页面变慢吗?这是不好的做法吗?有什么我应该知道的与此相关的重要信息吗?

谢谢!

【问题讨论】:

    标签: php jquery function


    【解决方案1】:

    如果您尝试将一些 PHP 代码与点击事件绑定,那么这在您尝试的方式中是不可能的,并且 PHP 代码将在页面加载后立即执行,而无需等待点击事件。

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

    【讨论】:

    • 执行此操作时出现错误。不再允许了吗?我只是想根据 if 语句是否包含一行 (if $_SESSION['somevar'] == 1)
    【解决方案2】:

    它不会减慢页面速度; 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>
    

    【讨论】:

      【解决方案3】:

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

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

      【讨论】:

        【解决方案4】:

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

        【讨论】:

          【解决方案5】:

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

          1. 用户请求页面。
          2. Apache(或等效的)注意到这一点 是一个php文件。然后渲染所有 php 标签之间的 php。
          3. Apache 将页面发送给用户。
          4. 用户的浏览器看到 JavaScript 并执行它。

          只要确保 PHP 输出的是有效的 JavaScript。

          【讨论】:

            【解决方案6】:

            在处理点击事件时,您可以更好地选择使用运行 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
            }
            
            });
                });
            });
            

            【讨论】:

              【解决方案7】:

              不,不是。只要你知道 JS 是在 PHP 页面解析完之后执行的。

              【讨论】:

                猜你喜欢
                • 1970-01-01
                • 2014-05-13
                • 2011-03-06
                • 1970-01-01
                • 1970-01-01
                • 1970-01-01
                • 1970-01-01
                • 2021-08-30
                • 1970-01-01
                相关资源
                最近更新 更多