将php变量分配给javascript变量的最佳做法是什么?

时间:2014-01-09 16:03:01

标签: javascript php zend-framework javascript-framework

我有一些像这样的代码

  var minAmountPay =  <?php echo $this->chat['Current']['admin'] >= 1 ? 1 : $this->minAmountPay; ?>;
  var userId = <?php echo $this->currentUserId?>;

我使用ZF,我的动作文件中有很多javascript代码。我想为每个动作创建js文件并对这些文件进行缩小。但我无法创建js文件,因为我已经将php变量分配给javascript变量。

也许我需要为此目的使用一些javascript框架?

5 个答案:

答案 0 :(得分:3)

使用data attributes

例如:

HTML:

<div id="something" data-minamountpay="<?php echo $this->chat['Current']['admin'] >= 1 ? 1 : $this->minAmountPay; ?>"></div>

JS(使用jQuery):

var minAmountPay = $('#something').data('minamountpay');

答案 1 :(得分:1)

JavaScript无法直接与PHP交互。

这是因为JavaScript是客户端的,PHP是服务器端的。

执行此操作的唯一方法是 - 通过在PHP中生成输出到脚本中的输出。

答案 2 :(得分:1)

您可以使用

将javascript添加到您的html文件中
<script type="text/javascript">
var minAmountPay =  <?php echo $this->chat['Current']['admin'] >= 1 ? 1 : $this->minAmountPay; ?>;
var userId = <?php echo $this->currentUserId?>;
</script>

答案 3 :(得分:0)

您可以将这些值分配给页面中的隐藏输入。

按输入值获取值。

这些值对用户都是可见的。

答案 4 :(得分:0)

您可能想要考虑放置这些变量的位置。你能把它们放在HTML中吗?当我需要做你正在做的事情时,我使用HTML 5数据属性并将变量分配到适当的位置,如下所示:

<div id="my-appropriate-div"
    data-min-amount-pay="<?php echo $this->chat['Current']['admin'] >= 1 ? 1 : $this->minAmountPay; ?>"
    data-user-id="<?php echo $this->currentUserId ?>">

然后在JavaScript中,您可以访问数据:

var minAmountPay = $('#my-appropriate-div').data('min-amount-pay');
var userId = $('#my-appropriate-div').data('user-id');

显然,不是将它们放入变量中,而是直接在函数中需要的地方使用它们。

相关问题