Я пытаюсь отобразить рекурсивный список в PHP для сайта, над которым я работаю.php recursive list help
У меня действительно возникли проблемы с попыткой отобразить второй уровень. У меня есть функция, которая выводит содержимое на страницу следующим образом.
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. Я попытался поэкспериментировать, однако он продолжает отображать несколько тегов UL для каждого элемента уровня 2. – Jason
@Jason: открывающий тег должен быть добавлен к '$ content' перед вашим большим циклом' while', а закрытие тег должен идти сразу после Это. –