【发布时间】:2010-10-28 08:08:36
【问题描述】:
$sql = "select menu_id , menu_name , parent_id from menu " ;
$dbc->setFetchMode(DB_FETCHMODE_ASSOC);
$res = $dbc->query($sql);
while($row = $res->fetchRow()){
$menu[$row['parent_id']][$row['menu_id']] = $row['menu_name'];
}
function make_menu($parent)
{
global $menu ;
echo '<ul>';
foreach($parent as $menu_id=>$menu_name)
{
echo '<li>'.$menu_name ;
if(isset($menu[$menu_id]))
{
make_menu($menu[$menu_id]) ;
}
echo '</li>';
}
echo '</ul>';
}
$P['menu_bilder_data'] = $menu[0] ;
//menu :off
$smarty->register_function('make_menu' , 'make_menu') ;
好的,我有这部分代码要检索并传递给 smarty。
我已将我的make_menu 函数注册为 smarty 的自定义用户函数,并且在模板中我有以下代码:
{make_menu parent_id=$P.menu_bilder_data}
我在索引文件中传递$P 数组。它必须工作,但它什么也没给我,因为它是一个递归函数,它返回一个数组而不是打印的嵌套 uls;我该如何解决这个问题?
【问题讨论】:
-
我稍微整理了一下你的问题,但我对最后一段不太确定,你能仔细检查一下我没有搞砸吗?