Smarty在while循环中赋值变量

时间:2014-04-15 11:39:25

标签: php smarty

我有以下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循环来获取所有值。有什么建议吗?

2 个答案:

答案 0 :(得分:0)

由于您使用单个变量来存储值,因此您只获得单个值。尝试使用smarty数组来分配值。

答案 1 :(得分:0)

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

在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}