【问题标题】:using JS variable in PHP在 PHP 中使用 JS 变量
【发布时间】:2011-11-22 12:35:08
【问题描述】:

如何在 PHP 中像这样使用 JS 变量?

<script>
x = document.getElementById(1).value;
var listOf = <?php echo $listOf[x]; ?>;
</script>

这不起作用:(

【问题讨论】:

  • 你不能这样做.. php 是一种服务器端语言,而 js 是一种客户端脚本语言.. 在 js 脚本运行的那一刻,php 解析已经结束.. 在你的示例中你是在运行时将数组 $listOf 中的值分配给 js var listOf 键上等于常量 x .. 取决于您需要什么 ajax 可能是答案
  • 非常感谢...我在 ajax 0 :)
  • 从 PHP 到 JS 是的,其他方式只是使用 Ajax。

标签: php javascript variables


【解决方案1】:

理所当然。 PHP 在 服务器 上执行,而 JavaScript 在客户端的 浏览器 上执行。这是两个不同的上下文,其中一个的变量在第二个中不可见。

您需要让您的 PHP 脚本输出一个 JavaScript 版本的数组,然后在您的脚本中使用它。像这样的:

<?php
echo "listArray = new Array();\n";
foreach ($listArray as $key => $value) {
   echo 'listArray[', $key, '] = ', $value, ";\n";
}

【讨论】:

  • 我在回答中添加了一些内容。您可以将 PHP 数组输出为 JavaScript 数组,从而使其可用于 JavaScript。但是你必须意识到它是一个副本......它不一样。另一个解决方案可能是 AJAX,正如@ShadowWizard 在他下面的回答中提到的那样。
  • 可以使用 AJAX,例如使用 jQuery 查看我的答案
【解决方案2】:

不能这样直接使用。

您必须使用 AJAX 将值从客户端发送到服务器端,然后 PHP 才能看到它。

使用 jQuery 可以变得非常简单:

x = document.getElementById(1).value;
$.get("mypage.php?x=" + x, function(result) {
    alert("response from PHP: " + result);
});

并在 PHP 中从查询字符串中读取 x 并发送正确的输出。

【讨论】:

    【解决方案3】:

    这是不可能的,因为两者都是不同的语言,所以你不能使用 javascript 变量 在 php 里面 javascript

    【讨论】:

      【解决方案4】:

      这是不可能的。 PHP 在服务器端执行,甚至在其输出到达您的浏览器之前。 JS 在客户端执行,在浏览器中。你不能这样做,除非你用这个变量x调用其他一些PHP脚本。

      【讨论】:

        【解决方案5】:

        你不能。 JavaScript 在您的浏览器中运行,而 PHP 在服务器上运行。 JavaScript 与 PHP 通信的唯一方法是使用 AJAX (XMLHttpRequest),将 JavaScript 与 PHP 分开。

        【讨论】:

          【解决方案6】:

          像这样 如果你把 php 放在任何单引号或双引号中,它就会起作用

          <script type='text/javascript'>
          x = document.getElementById(1).value;
          var listOf = "<?php echo $listOf[x]; ?>";
          </script>
          

          【讨论】:

            【解决方案7】:

            这会将 javascript 变量转换为 php 变量。

            <script>
            function sud(){
            
            javavar=document.getElementById("text").value;  
            
            document.getElementById("rslt").innerHTML="<?php 
            $phpvar='"+javavar+"'; 
            echo $phpvar.$phpvar;?>";
            }
            
            function sud2(){
            document.getElementById("rslt2").innerHTML="<?php 
            echo $phpvar;?>";
            }
            
            </script> 
            <body>
            <div id="rslt">
            </div>
            
            <div id="rslt2">
            </div>
            <input type="text" id="text" />
            <button onClick="sud()" >Convert</button>
            <button onClick="sud2()">Once Again</button>
            
            </body>
            

            演示:http://ibence.com/new.php

            【讨论】:

              猜你喜欢
              • 1970-01-01
              • 2021-09-30
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 2017-07-10
              • 2018-10-28
              • 1970-01-01
              • 1970-01-01
              相关资源
              最近更新 更多