ShadowDancerII
Новичок
Выпадающее меню , Рекурсивная функция
Добрый всем денек!
Есть такая задача:
Нужно построить выпадающее меню разделов вида
<Option>Родительский раздел</option>
<Option>Родительский раздел/подраздел/</option>
итд пока подразделы не кончатся.
самое простое решение Рекурсия. примеры с построением дерева каталогов рассматриваются почти везде, а как сделать меню.
Буду очень благодарен ответившим!
Добрый всем денек!
Есть такая задача:
Нужно построить выпадающее меню разделов вида
<Option>Родительский раздел</option>
<Option>Родительский раздел/подраздел/</option>
итд пока подразделы не кончатся.
самое простое решение Рекурсия. примеры с построением дерева каталогов рассматриваются почти везде, а как сделать меню.
PHP:
function menu($get_all_razdels, $id = 0, $prefix = '') {
$out = $prefix.'--';
foreach ($get_all_razdels as $key => $value){
if($value['parent_id'] == $id){
$out .= '<option value="$value[id]">'.$value['name'].'</option>';
$out = get_tree($get_all_razdels, $key, $out);
}
}
$out .='$value[name]|';
return str_replace('<ul></ul>','',$out);
}
$array = array (
1 => array ('id' => '1', 'parent_id' => '0', 'name' => 'Родительский раздел 1' ),
2 => array ('id' => '2', 'parent_id' => '1', 'name' => 'Дочерний раздел'),
3 => array ('id' => '3', 'parent_id' => '1', 'name' => 'Дочерний раздел'),
4 => array ('id' => '4', 'parent_id' => '1', 'name' => 'Дочерний раздел'),
5 => array ('id' => '5', 'parent_id' => '2', 'name' => 'Дочерний раздел'),
6 => array ('id' =>'13', 'parent_id' => '4', 'name' => 'Дочерний раздел'),
7 => array ('id' =>'14', 'parent_id' => '5', 'name' => 'Дочерний раздел'),
8 => array ('id' =>'15', 'parent_id' => '5', 'name' => 'Дочерний раздел'),
9 => array ('id' =>'16', 'parent_id' => '5', 'name' => 'Дочерний раздел'),
10 => array ('id' =>'16', 'parent_id' => '0', 'name' => 'Родительский раздел 2')
);
echo " <form action=\"\" method=\"get\">
<select name=\"12\">";
print menu($array,0,false);
echo "</select>
</form>";
Очень содержательный ответ!