【问题标题】:Use PHP variable in javascript function within a Smarty template [duplicate]在Smarty模板中的javascript函数中使用PHP变量[重复]
【发布时间】:2013-04-24 20:50:15
【问题描述】:

在我的 HTML 文件中,我使用了一个名为 {$var} 的字符串变量,它是从 PHP 文件传递​​的。如何在同一个 html 文件中的 javascript 函数中使用 {$var}?我想使用 js 函数显示这个变量。这是我目前所拥有的:

<span id="printHere"></span>
<script type="text/javascript">
    var php_var = {$production};
    $('#printHere').html(php_var);
</script>

【问题讨论】:

  • 你只需要回应它
  • 只看页面源码
  • 我查看了源代码,变量{$var}显示&lt;span class="itemprop" itemprop="name"&gt;Name&lt;/span&gt;
  • 这个问题不是重复的。它不应该作为副本关闭。投票支持将这个问题作为重复问题关闭的每个人都没有给予太多关注。

标签: javascript php smarty


【解决方案1】:

对于 PHP

您可以将变量直接回显到您的 JavaScript 中。只要确保json_encode()它,数据类型和转义都会自动完成。

var php_var = <?php echo json_encode($production) ?>;

对于聪明人

如果您将 Smarty 用于您的模板引擎,则需要这样:

var php_var = {$production|json_encode nofilter};

这样做是禁用 Smarty 的 HTML 转义(使用 nofilter)并将值传递给 json_encode()

【讨论】:

  • 比我的好看! ;)
【解决方案2】:

确保设置了$production。如果是(javascript)String,则使用:

var php_var = '<?php echo addslashes($production); ?>';

如果是Number,则使用

var php_var = <?php echo $production; ?>;

【讨论】:

  • 可能想要添加addslashes()
  • @RyanNaddy,这只是问题的一部分。请参阅我的 JSON 编码答案以获得正确的解决方案。
  • {$production} 显示 &lt;span class="itemprop" itemprop="name"&gt;Name&lt;/span&gt; 这算作字符串吗?
  • 您使用的是模板引擎吗? (聪明)?
  • 我认为{$producetion} 不会输出任何东西,如果它只是 php(甚至是 html)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2011-05-17
  • 1970-01-01
  • 1970-01-01
  • 2017-05-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多