【问题标题】:How to concatenate PHP variable with JavaScript Variable? Is it possible? [duplicate]如何连接 PHP 变量和 JavaScript 变量?可能吗? [复制]
【发布时间】:2013-07-25 06:25:42
【问题描述】:

Java 脚本代码:

<script type="text/javascript">
        $(function () {
         var  seatNo = 2;                                                       
         str.push('<a title="' + seatNo + '">' + '<?php echo $thisPacket["seat"]; ?>'</a>');
         }); 
</script>

我想在 $thisPacket["seat"] 和 java 脚本变量 seatNo. 之间连接
就像 php 连接一样。例如:$i = 1; $thisPacket["seat".$i];

【问题讨论】:

标签: php javascript


【解决方案1】:

我想在 $thisPacket["seat"] 和 java Script 之间连接 可变座位号就像 php 连接一样。例如:$i = 1; $thisPacket["seat".$i];

不,这不起作用,因为 PHP 代码在服务器上运行,而 javascript 变量 seatNo 在 javascript 代码在客户端上执行之前不可用。

【讨论】:

    【解决方案2】:

    最好的办法是将$thisPacket 序列化为 JSON 对象并将其发送给客户端:

    <script type="text/javascript">
            var thePacket = <?=json_encode($thisPacket);?>;
            $(function () {
            var  seatNo = 2;                                                       
                str.push('<a title="' + seatNo + '">' + thePacket['seat'+seatNo] + '</a>');
             }); 
    </script>
    

    但我猜你真的应该重新考虑你目前的设计。

    【讨论】:

      【解决方案3】:

      将您的 php 变量分配给 javascript 变量,而不是将它们连接起来。

      var phpVar = '<?php echo $thisPacket["seat"]; ?>';
      var seatNo =  2;
      var conVar = seatNo + phpVar;
      

      我希望这会奏效

      【讨论】:

        【解决方案4】:

        不,这是不可能的,因为 JavaScript 是一种客户端语言,并且在所有 PHP 命令都在服务器中执行并完全呈现页面之后才会执行。但是 PHP 是一种服务器端语言,它在解释任何 JavaScript 代码之前执行。

        【讨论】:

        • 所以显示 HTML 也是不可能的,因为 HTML 是客户端,而 PHP 是服务器端
        • @vladkras:不,PHP的主要职责是HTML RenderingHTTP Handling,所以PHP在渲染页面时可以操作html
        • 主要职责是成为特别适合web开发的通用脚本语言你也可以渲染JS,甚至可以动态生成
        • @vladkras:在这一步你是对的,但我认为你没有仔细阅读我的答案,我在这个答案中的意思是 访问 JS 变量的内容是不可能的,而 PHP 是渲染,好吗?
        • 我明白你在说什么。我认为@vladkras 对您所说的如何 有疑问。 :)
        【解决方案5】:

        这应该可以工作

        <script type="text/javascript">
                $(function () {
                var  seatNo = 2;                                                       
                    str.push('<a title="' + seatNo + '"><?php echo $thisPacket["seat"]; ?></a>');
                 }); 
        </script>
        

        【讨论】:

        • 是的,我知道,但我的问题是,我想将 $thisPacket["seat"] 与 java 脚本变量 seatNo 连接起来。就像 php 连接一样。例如:$i = 1; $thisPacket["seat".$i];
        • 你只能将一个javascript变量与一个php变量连接起来,但在另一个方向上是不可能的。
        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-08-19
        • 2011-06-14
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-07-29
        相关资源
        最近更新 更多