Я делаю систему таксономии. Я уже создал рекурсивную функцию, а также функцию для отображения моих категорий в списке (<ul>
). Все отлично работает со списком, каждый дочерний элемент перемещается вправо ... и т. Д.Вложенная опция в списке
Но теперь мне нужно сделать то же самое с <select>
. Вот то, что я сделал до сих пор:
private function _toHtml(&$list, $parent=-1, $pass = 0){
$foundSome = false;
for($i=0,$c=count($list);$i<$c;$i++){
$delay = '';
if($list[$i]['parent_id']==$parent){
if($foundSome==false){
$delay .= str_repeat("--", $pass);
$foundSome = true;
}
echo '<option value="'. $list[$i]['id'] .'">'. $delay . $list[$i]['name'] .'</option>';
$this->_toHtml($list,$list[$i]['id'],$pass+1);
}
}
}
Проблема заключается в том, что это работает только на первой детской elment, остальные вроде не рассматривает вообще. Это выглядит в основном так:
Cinema
--English (sub cat for Cinema)
French (also a sub cat for Cinema)
Когда я рассчитывать на:
Cinema
--English (sub cat for Cinema)
--French (also a sub cat for Cinema)
Любая идея?
Спасибо за вашу помощь
http://dipesharea.wordpress.com/2011/06/03/n-level-category/ –
Сколько уровней у вас есть? Следует ли выбрать родителя? – sectus