在 JavaScript 中访问 PHP 变量

IT技术 php javascript
2021-02-01 20:16:50

可能的重复:
如何在 JavaScript 或 jQuery 中访问 PHP 变量而不是 <?php echo $variable ?>

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

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

3个回答

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

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

你也可以用 AJAX 加载它

rhino 是对的,为了简洁起见,该代码段缺少类型。

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

@stillstanding:我不会像实际规范那样信任 W3Schools。参见w3.org/TR/html5/scripting-1.html#script -- type 属性给出了脚本的语言或数据的格式。... 如果属性不存在,则使用的默认值是“text/javascript”。
2021-03-19 20:16:50
W3C 指出 The type attribute must be specified for each SCRIPT element instance in a document.
2021-03-24 20:16:50
是的,他大概只是为了简洁起见而省略了它。
2021-04-02 20:16:50
@stillstanding:具体点:W3C 声明在哪里?它在 HTML5 中不是必需的。
2021-04-04 20:16:50
rhino 是正确的,json_encode 会转义变量。
2021-04-06 20:16:50

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

<script type="text/javascript">
var something=<?php echo json_encode($a); ?>;
</script>
+1。经测试,json_encode确实正确引用和转义字符串。
2021-03-25 20:16:50

我不确定这是多么必要,它添加了对 的调用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;