我需要将 php 知道的变量传递给我的 javascript 代码,我想知道正确的方法是什么。
我已经知道我可以将其添加到页面生成中:
<script type="text/javascript">
var someJSVariable = <?php echo $somePHPVariable ?>
</script>
但我发现这种方法比我想要的更突兀。我想知道是否有更好的方法来做到这一点,还是我不得不将内联 javascript 代码注入到视图脚本中?
我需要将 php 知道的变量传递给我的 javascript 代码,我想知道正确的方法是什么。
我已经知道我可以将其添加到页面生成中:
<script type="text/javascript">
var someJSVariable = <?php echo $somePHPVariable ?>
</script>
但我发现这种方法比我想要的更突兀。我想知道是否有更好的方法来做到这一点,还是我不得不将内联 javascript 代码注入到视图脚本中?
如果它只是 1 个变量,我认为这是最好的解决方案。如果您不想将 JS 混合到您的普通视图中,请创建一个单独的视图,该视图将呈现为 .js 文件,然后在您的“真实”视图中包含指向该 .js 的链接。如果您需要性能,则需要一些智能捕捉。
如果有超过 1 个变量,例如 html 文档和服务器之间的数据交换,您可以使用 [AJAX]( http://en.wikipedia.org/wiki/Ajax_(programming))。
我喜欢json_encode()
这种东西。
但是,是的,你被这种内联方法“卡住”了。老实说,你更喜欢这个吗?
$js = '<script type="text/javascript">';
$js .= "var someJSVariable = " . $somePHPVariable;
$js .= '</script>';
// some time later
echo $js;
没想到。内联方法是 php 的生计。随它去吧。
您始终可以向单独的 URL 发出异步请求以获取动态值。但是,当页面加载时,您将在那里受到轻微的性能损失。考虑到这一点,我会推荐您概述的内联方法。
您还可以包含另一个“js”文件,它实际上是一个 PHP 页面,它生成一堆 javascript 常量,然后您可以在您的主页中访问这些常量。