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