【发布时间】:2014-02-21 09:58:23
【问题描述】:
将服务器端 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>
b.读取 Javascript 文件(假设 jQuery 可用):
var jsVar= $('span[data-name="phpVar"]').attr('data-value');
3.页面加载后用 AJAX 询问它
显然不是最好的解决方案。不适合所有场景,需要额外的请求...
结论:
- 它们在我看来都很丑...有更好的方法吗?
- 是否有任何框架可以处理这种依赖关系?请尽量减少服务器重新配置。
【问题讨论】:
-
如果值不依赖于用户交互,则解决方案 1,否则解决方案 3。你为什么不喜欢他们?
-
AJAX 是最好的方式,你觉得在什么场景下,ajax 不好?
-
@ShaikMahaboobBasha 对于 AJAX,您需要向服务器发送新的子请求,这不是最佳解决方案。最好的解决方案是第一种情况,您不需要使用子请求加载服务器。
-
选项 1 与
json_encode()... -
@DanFromGermany 如果需要传递很多变量最好使用
标签: javascript php server-side