我想使用section打印一个关联数组,但我无法这样做。以下是PHP和Smarty代码:
PHP代码:
$smarty->assign('$all_latest_news', $grid_data);
在上面的代码中,$grid_data
是一个关联数组,分配给smarty模板。为了您的信息,使用print_r($grid_data)
打印后,数组看起来像这样:
Array ( [0] => Array ( [news_id] => 1 [news_title] => News Channel URL [news_link] => http://indiatoday.intoday.in/ [news_added_date] => 2013-02-26 ) [1] => Array ( [news_id] => 2 [news_title] => News Paper Web Address [news_link] => http://www.bhaskar.com/ [news_added_date] => 2013-02-25 ) )
现在我想在smarty模板中打印这个数组,代码片段如下:
<table width="100%" align="center" cellpadding="6" cellspacing="1" bgcolor="#FFFFFF">
<tr align="center" id="tableHeader">
<td width="20%" align="left"><b>News Title</b></td>
<td width="55%" align="left"><b>News Link</b></td>
<td width="15%" align="center"><b>Option</b></td>
</tr>
{section name=news loop=$all_latest_news}
<tr align="center" id="tabledata" bgcolor="{cycle values="#d0e8f4,#96c0d5"}">
<td align="left" valign="top">{$all_latest_news[news].news_title}</td>
<td align="left" valign="top">{$all_latest_news[news].news_link|truncate:350:" ...":true}</td>
<td align="center" valign="top"><a href="manage_latest_news.php?op=edit&news_id={$all_latest_news[news].news_id}">Edit</a>
<a href="manage_latest_news.php?op=delete&news_id={$all_latest_news[news].news_id}" onClick="return ConfirmDelete()">Delete</a></td>
</tr>
{sectionelse}
<tr>
<td colspan="5" align="center"><b>No News Available</b></td>
</tr>
{/section}
</table>
使用此代码我无法将数组值打印到相应的列。列标题正确打印。之后执行{sectionelse}
部分并打印消息“No News Available”。
其实我想打印数组中的值。任何人都可以帮我解决这个问题吗?提前谢谢。
答案 0 :(得分:2)
当您将值分配给Smarty中的变量时,您不希望放置'$'
符号。将您的代码更改为,
$smarty->assign('all_latest_news', $grid_data);
答案 1 :(得分:2)
更改$smarty->assign('$all_latest_news', $grid_data);
到:
$smarty->assign('all_latest_news', $grid_data);
使用此:
{foreach from=$all_latest_news item=news name=news}
{$news.news_title}
{/foreach}
参考:http://www.smarty.net/docsv2/en/language.function.foreach