将服务器端PHP变量传递给Javascript的最佳方法是什么?
为简化问题,假设我们在PHP中有一个变量($phpVar
),我们想将其值赋给Javascript变量(jsVar
)
Javascript文件以html格式加载 - 它们不是动态创建的!
有些值得深思的话:
1。在加载Javascript文件之前使用PHP打印:
<script language="javascript" type="text/javascript">
var jsVar= <?php echo $phpVar?>;
</script>
2。存储在DOM中(隐藏元素中)
一个。用PHP:
<span data-name="phpVar" data-value="<?php echo $phpVar?>"></span>
湾读入Javascript文件(假设jQuery可用):
var jsVar= $('span[data-name="phpVar"]').attr('data-value');
第3。在页面加载后用AJAX询问
显然不是最好的解决方案。不适合所有情况,需要额外的请求......
总结:
答案 0 :(得分:2)
最好的方法是提供从客户端通过AJAX请求的“内部API”。 这样做可以保持双方分开。
在此之后,最快的方法是在共享文件中打印您要共享的值(正如您在问题中所写的那样)。
作为最后一点:如果你继续第二种方式,我会建议你
json_encode()
是一个非常有用的方法,可以将数组和对象从php传递到javascript。
所以如果你有你的php数组:
$array = array( "a" => 1, "b" => 2 );
<script language="javascript" type="text/javascript">
var js_array= <?php echo json_encode( $array ) ; ?>;
</script>
答案 1 :(得分:1)
这取决于具体情况,但一般来说,主要是使用第一种情况。但是如果传递一个字符串,请不要忘记引号:
<script language="javascript" type="text/javascript">
var jsVar = '<?php echo $phpVar?>';
</script>