2015-04-27 3 views
1

Я использую Smarty, PHP и MySQL.Выпадающее меню родительских и подкатегорий

Это должно быть очень легко для тех, кто понимает, как это сделать. Я ноб и понятия не имею.

Попытка получить горизонтальную навигационную панель с родителями и подкатегориями в раскрывающемся списке.

В текущем коде отображается только родительский элемент, и мне нужны подкатегории для отображения под.

Я не думаю, что у меня есть SQL, чтобы получить подкаты и не знаю, как его написать, поэтому, возможно, кто-то может помочь.

TABLE >>> CATEGORY 

    category_id name  parent_id 
    1   Parent 0 
    2   Parent 0 
    2   Parent 0 
    3   Child  1 
    4   Child  2 
    5   Child  2 
    6   Child  3 
    7   Child  3 

Текущая функция, чтобы получить Категории

// list of all categories 
function getCategoriesList($include_subcats = false) { 

$where = ''; 

if ($include_subcats != false) { 
    $where = ' where parent_id = 0 '; 
} 
$list = 
getSqlResult(
    "select * from category $where ORDER BY parent_id ASC", 
    SQL_RESULT_ALL); 

return $list; 
} 

код шаблона для отображения меню

{foreach name=CategoriesList from=$CategoriesList item=i} 
<li class="dropdown "><a href="/{$i.category_filename}" class="dropdown-toggle" data-toggle="dropdown">{$i.category_name}<b class="caret"></b></a 
</li>{/foreach} 
+0

есть несколько способов сделать это. я ответил на вопрос, надеюсь, вы поймете путь –

+0

У вас, кажется, есть повторяющиеся строки – Strawberry

ответ

0

вы можете это сделать, чтобы вернуть функция

во-первых, мы будем писать родителям, потому что их число составляет 0

   function categori($upcatid=0, $satir=0, $bosluk=""){ 
      // $upcatid is 0 for began that means is we will see the all parent 
       $data["result"]= $categori->kategori($upcatid);// i got my all cats from db 
       foreach ($data["result"] as $key => $kategorim) { 
     // lets look at the cats parent categories parent_id are 0 if categori parent is not 0 it main the categori have parent! so we are going to return the function and call the parent firstly 

       if(!isset($disabled)) 
        $disabled=''; 
       echo '<option value="'.$kategorim["id"].'" '.$disabled.' >'.str_repeat("->>", $satir).">$bosluk ".$kategorim["catname"].'</option>'; 
    categori($kategorim["id"], $satir+1); // now get the categori id and retun the function 
    //call the all childs of the cat. 

       } 
      } 

я написал все категории в некоторых вариантах

if($upcatid==0) 
echo ' <li class="dropdown"> 
       <a data-toggle="dropdown" class="dropdown-toggle" href="#">'.$kategorim["catname"].' <b class="caret"></b></a> 

'; 
elseif($upcatid!==0){ 
echo ' <li class="dropdown-submenu"> 
        <a href="#">'.$kategorim["catname"].'</a> 
        <ul class="dropdown-menu"> 
        <li><a href="#">'.categori($kategorim["id"], $satir+1).'</a></li> 

        </ul> 
       </li>'; 


echo '</li>'; 

все, что вам нужно изменить свой проект

+0

Hi Ahmet. Спасибо за Ваш ответ. Не уверен, как сделать эту работу в моих шаблонах Smarty. Я вставил его, но он не работает. –

+0

Это не работает, потому что вам нужно изменить этот код для своего проекта. Если вы понимаете, что нужно сделать древовидную кошку, то другая часть легко просто взглянет на пример выпадающего списка бутстрапов. Вы измените для своего projede –

+0

Не знаете, как изменить. Мне нужно полное решение, чтобы понять, как сделать эту работу с шаблоном Smarty. Не предполагается использовать PHP в шаблоне Smarty. –

Смежные вопросы