我正在嘗試在PHP中顯示我正在處理的網站的遞歸列表。php遞歸列表幫助
我真的很難嘗試獲得第二級顯示。我有一個功能,顯示內容到頁面如下。
function get_menu_entries($content,$which=0)
{
global $tbl_prefix, $sys_explorer_vars, $sys_config_vars;
// INIT LIBRARIES
$db = new DB_Tpl();
$curr_time = time();
$db->query("SELECT * FROM ".$tbl_prefix."sys_explorer WHERE preid = '".$which."' && config_id = '".$sys_explorer_vars['config_id']."' && blocked = '0' && startdate < '".$curr_time."' && (enddate > '".$curr_time."' || enddate = '') ORDER BY preid,sorting");
while($db->next_record()){
$indent = $db->f("level") * 10 - 10;
$sitemap_vars['break'] = "";
$sitemap_vars['bold'] = "";
if($db->f("level") == 2) {
$sitemap_vars['ul_start'] = "";
$sitemap_vars['bold'] = "class='bold'";
$sitemap_vars['ul_end'] = "";
}
switch($db->f("link_type"))
{
case '1': // External Url
$sitemap_vars['hyperlink'] = $db->f("link_url");
$sitemap_vars['target'] = "";
if($db->f("link_target") != "") {
$sitemap_vars['target'] = "target=\"".$db->f("link_target")."\"";
}
break;
case '2': // Shortcut
$sitemap_vars['hyperlink'] = create_url($db->f("link_eid"),$db->f("name"),$sys_config_vars['mod_rewrite']);
$sitemap_vars['target'] = "";
break;
default:
$sitemap_vars['hyperlink'] = create_url($db->f("eid"),$db->f("name"),$sys_config_vars['mod_rewrite']);
$sitemap_vars['target'] = "";
break;
}
if($db->f("level") > 1) {
$content .= "<div style=\"text-indent: ".$indent."px;\" ".$sitemap_vars['bold']."><a href=\"".$sitemap_vars['hyperlink']."\" ".$sitemap_vars['target'].">".$db->f("name")."</a></div>\n";
}
$content = get_menu_entries($content,$db->f("eid"));
}
return(''.$content.'');
}
目前內容顯示正常,但是我想把這個功能變成一個DHTML下拉菜單。 目前2級元素髮生的情況是使用CSS內容使用CSS縮進。我需要做的是將UL標籤放置在開始處,將/ UL標籤放置在2級元素的末尾。
我希望這是有道理的。任何幫助將不勝感激。
嗨,薩米爾,謝謝你的幫助。我的麻煩是,我不知道鯨魚到底插入UL和/ UL標籤,我嘗試過試驗,但是它爲每個2級元素都顯示多個UL標籤 – Jason 2010-05-25 02:07:49
@Jason:開始標籤應該在你的大'while循環之前附加到'$ content',並且關閉標籤應該在之後進行它。 – 2010-05-25 02:09:56