【问题标题】:Access PHP variable in JavaScript [duplicate]在 JavaScript 中访问 PHP 变量 [重复]
【发布时间】:2011-05-16 07:12:09
【问题描述】:

可能重复:
How to access PHP variables in JavaScript or jQuery rather than <?php echo $variable ?>

有没有办法在 JavaScript 中访问 PHP 变量?

我在 PHP 中有一个变量 $a,我想在 JavaScript 变量中获取它的值。

【问题讨论】:

    标签: php javascript


    【解决方案1】:

    我不确定这是多么必要,它添加了对 getElementById 的调用,但如果您真的热衷于从代码中获取内联 JavaScript,您可以将其作为 HTML 属性传递,即:

    <span class="metadata" id="metadata-size-of-widget" title="<?php echo json_encode($size_of_widget) ?>"></span>
    

    然后在你的 JavaScript 中:

    var size_of_widget = document.getElementById("metadata-size-of-widget").title;
    

    【讨论】:

      【解决方案2】:

      你不能,你必须做类似的事情

      <script type="text/javascript">
         var php_var = "<?php echo $php_var; ?>";
      </script>
      

      你也可以用 AJAX 加载它

      rhino 是对的,为了简洁起见,sn-p 缺少类型。

      另外,请注意如果$php_var 有引号,它会破坏你的脚本。您应该使用添加斜杠、htmlentities 或自定义函数。

      【讨论】:

      • rhino 正确,json_encode 转义变量。
      • W3C 声明 The type attribute must be specified for each SCRIPT element instance in a document.
      • 对,他可能只是为了简洁而省略了它。
      • @stillstanding:具体一点:W3C 声明在哪里?在 HTML5 中不是必需的。
      • @stillstanding:我不会像实际规范那样信任 W3Schools。请参阅w3.org/TR/html5/scripting-1.html#script -- type 属性给出了脚本的语言或数据的格式。 ...如果该属性不存在,则使用默认值是“text/javascript”。
      【解决方案3】:

      metrobalderas 部分正确。部分原因是 PHP 变量的值可能包含一些特殊字符,这些字符在 JavaScript 中是元字符。为避免此类问题,请使用以下代码:

      <script type="text/javascript">
      var something=<?php echo json_encode($a); ?>;
      </script>
      

      【讨论】:

      • +1。经过测试,json_encode 确实正确引用和转义字符串。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-07-28
      • 1970-01-01
      • 2012-10-03
      • 1970-01-01
      • 2013-10-31
      • 2011-08-25
      相关资源
      最近更新 更多