【问题标题】:Smarty assign variable in while loopSmarty在while循环中分配变量
【发布时间】:2014-04-15 11:39:25
【问题描述】:

我有以下PHP函数

while( $manufacturer2 = xtc_db_fetch_array($manufacturer_query2,true) ){
echo $manufacturer2['manufacturers_name'] = '<a class="PI_Manufacturer"
href="'. xtc_href_link(FILENAME_DEFAULT, xtc_manufacturer_link($manufacturer2['manufacturers_id'])) . '">' . $manufacturer2['manufacturers_name'] . '</a>';
}

现在它回显了结果,但我想将它们分配给 Smarty 变量。我把这个:

$info_smarty->assign('MANUFACTURERS',$manufacturer2['manufacturers_name']);

在 while 循环中,但是当我在模板中调用我的变量时,我只得到 1 个名称而不是 2 或 3 例如。在我的模板中,我使用 foreach 循环来获取所有值。有什么建议吗?

【问题讨论】:

    标签: php smarty


    【解决方案1】:

    由于您使用单个变量来存储 bvalue,这就是为什么您只能获得单个值。尝试使用 smarty 数组来赋值。

    【讨论】:

      【解决方案2】:

      这是我解决这个问题的方法:

      在while循环中创建了一个数组,并将每一项放入其中:

      while( $manufacturer2 = xtc_db_fetch_array($manufacturer_query2,true) ){
      $os[] = $manufacturer2['manufacturers_name'] = '<a class="PI_Manufacturer" style="color: #990033" href="' . xtc_href_link(FILENAME_DEFAULT, xtc_manufacturer_link($manufacturer2['manufacturers_id'],$manufacturer2['manufacturers_name'])) . '">' . $manufacturer2['manufacturers_name'] . '</a><text class="PI_Manufacturer">;</text> ';
      $info_smarty->assign('ALINK',$os);
      }
      

      我还在最后将数组分配给一个变量,并在模板中使用 foreach 循环调用它:

      {foreach item=authors from=$ALINK} 
      {$authors}
      {/foreach}
      

      【讨论】:

        猜你喜欢
        • 2013-04-07
        • 2013-12-17
        • 2011-10-01
        • 1970-01-01
        • 1970-01-01
        • 2015-11-04
        • 1970-01-01
        • 1970-01-01
        • 2011-03-07
        相关资源
        最近更新 更多