【问题标题】:Passing variable from PHP to Smarty将变量从 PHP 传递给 Smarty
【发布时间】:2015-02-04 08:36:35
【问题描述】:

我有两个脚本,一个在 .php 中,一个在 .tpl 我需要将php中的变量传递给tpl。 我试过这个,但没有任何效果(但不知何故

  1. 它工作一两天,然后,
  2. 显示空白,
  3. 如果我创建另一个 php 脚本 只是为了回显变量,它可以工作。

PHP 代码:

<?php
$usdidr2 = "12610.198648";
$usdidr2 =  number_format($usdidr,2,',','.');
echo $usdidr2;
session_start();
$regValue = $usdidr2;
$_SESSION['regUSDIDR1'] = $regValue;
?>

SMARTY 代码:

<li>
    <a href="example.php"><strong>
        {php}
            session_start();
            $regValue = $_SESSION['regUSDIDR1'];
            $regValue2 = number_format(45.99*$regValue,2,',','.');
            echo "Rp. ".$regValue."";
            print_r($regValue);
        {/php}
    </strong></a>
</li>

【问题讨论】:

  • 使用...嗯..我不知道...聪明? $smarty-&gt;assign() 或者...嗯...阅读manuals
  • 尽管问题有点模糊,但我认为您的会话已过期;)
  • RTFM!实时调频!实时调频!实时调频! (字符限制)
  • @KarolyHorvath,是的,它在 1 或 2 天后在 smarty 中显示空(空白)变量。 (不会停止工作,但可能会话已过期或我无法理解)
  • @Havelock 很可能是会话...但是我该如何摆脱这个?谢谢

标签: php variables smarty


【解决方案1】:

这是从 php 向 tpl 发送数据的语法

$smarty->assign('variable name with which you can access the data in tpl', $php_data_you_want_to_send);

更新:

$smarty->assign('rate',$usdidr2);// you just need to write rate without $

如果它是字符串,你可以像{$rate}一样在smarty中访问它 如果它是数组,你可以像{$rate|print_r} 这样在 smarty 中访问它

【讨论】:

  • 如何在 SMARTY 代码中获取它?我试过这个: $smarty->assign('$rate','$usdidr2');在 smarty 中:{$rate} 但仍然为空
  • @moengoet 能否请您发布您的具体尝试,以便我可以拥有和想法
  • {$rate}
  • @moengoet 它在 .tpl 方面是正确的,你能在 php 方面向我展示你能在问题中发布 php 文件吗
  • 【解决方案2】:

    您可以使用以下语法:

    $res = "Hello World!";
    $this->context->smarty->assign('result', $res);
    

    并像这样传递给 .tpl 文件:

    {$result}
    

    希望对您有所帮助。

    【讨论】:

      猜你喜欢
      相关资源
      最近更新 更多
      热门标签