cdi
Новичок
генерация выпадающего списка
Ребята, убедительная просьба помочь, у самого что-то не получается. Есть массив, по к-му строится дерево разделов при помощи html-списков. А как построить выпадающий список из этого же массива?
Ребята, убедительная просьба помочь, у самого что-то не получается. Есть массив, по к-му строится дерево разделов при помощи html-списков. А как построить выпадающий список из этого же массива?
PHP:
<?php
// ф-я генерации дерева при помощи html-списков
function get_tree($get_all_razdels, $id = 0, $prefix = '') {
$out = $prefix.'<ul>';
foreach ($get_all_razdels as $key => $value){
if($value['parent_id'] == $id){
$out .= '<li>'.$value['name'].'</li>';
$out = get_tree($get_all_razdels, $key, $out);
}
}
$out .='</ul>';
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' => 'раздел 1.1'),
3 => array ('id' => '3', 'parent_id' => '1', 'name' => 'раздел 1.2'),
4 => array ('id' => '4', 'parent_id' => '1', 'name' => 'раздел 1.3'),
5 => array ('id' => '5', 'parent_id' => '2', 'name' => 'раздел 1.1.1'),
6 => array ('id' => '6', 'parent_id' => '2', 'name' => 'раздел 1.1.2'),
7 => array ('id' => '7', 'parent_id' => '2', 'name' => 'раздел 1.1.3'),
8 => array ('id' => '8', 'parent_id' => '3', 'name' => 'раздел 1.2.1'),
9 => array ('id' => '9', 'parent_id' => '3', 'name' => 'раздел 1.2.2'),
10 => array ('id' =>'10', 'parent_id' => '3', 'name' => 'раздел 1.2.3'),
11 => array ('id' =>'11', 'parent_id' => '4', 'name' => 'раздел 1.3.1'),
12 => array ('id' =>'12', 'parent_id' => '4', 'name' => 'раздел 1.3.2'),
13 => array ('id' =>'13', 'parent_id' => '4', 'name' => 'раздел 1.3.3'),
14 => array ('id' =>'14', 'parent_id' => '5', 'name' => 'раздел 1.1.1.1'),
15 => array ('id' =>'15', 'parent_id' => '5', 'name' => 'раздел 1.1.1.2'),
16 => array ('id' =>'16', 'parent_id' => '5', 'name' => 'раздел 1.1.1.3')
);
// вывод дерева
print get_tree($array,0,false);
// как получить из имеющегося масиива $array
// выпадающий список такого вида ?
?>
<select>
<option>-раздел 1</option>
<option>--раздел 1.1</option>
<option>---раздел 1.1.1</option>
<option>----раздел 1.1.1.1</option>
<option>----раздел 1.1.1.2</option>
<option>----раздел 1.1.1.3</option>
<option>---раздел 1.1.2</option>
<option>---раздел 1.1.3</option>
<option>--раздел 1.2</option>
<option>---раздел 1.2.1</option>
<option>---раздел 1.2.2</option>
<option>---раздел 1.2.3</option>
<option>--раздел 1.3</option>
<option>---раздел 1.3.1</option>
<option>---раздел 1.3.2</option>
<option>---раздел 1.3.3</option>
</select>