Dynami c Выпадающее меню и подменю php mysqli со значением slug - PullRequest
0 голосов
/ 27 февраля 2020

У меня есть меню, которое необходимо динамически создавать из базы данных. нужно иметь меню и подменю

например (что я хочу):

<li class="<?= ($pg == 'departments') ? 'active':''; ?>">
   <a href="departments">Departments</a>
   <ul class="dropdown">
      <li>
         <a href="department">CSE</a><br>
         <a href="department">ECE</a>
         <ul class="dropdown dropdown-right">
           
            <li ><a href="department?slug=about-cse-department">About The Department</a></li>
            <li ><a href="head-of-department?slug=about-cse-hod">HOD</a></li>
            <li ><a href="department-vision-mission?slug=about-cse-vision-mision">Vision &amp; Mission</a></li>
            <li ><a href="department-facilities?slug=about-cse-department-facility">Department Facilities</a></li>
            <li ><a href="department-goals?slug=about-cse-department-goals">Department Goals</a></li>
            <?php } } ?>
         </ul>
      </li>
      <?php } ?>
   </ul>
</li>

Основные отделы и подменю CSE, ECE, EEE, CIVIL и каждое подменю, которое у меня есть ниже, появится раскрывающееся меню и в таблице MySQL также я буду создавать и хранить данные и Имена слагов. А также меню повторного вызова будет повторяться, пожалуйста, найдите ниже приложение.

Мой ответ

Department-> CSE-> Об Департаменте Департамента-> ECE-> Об Департаменте

Department-> CSE-> HOD Department-> ECE-> HOD

с каждым единственным меню. in this image you can see dropdown menus are repeated i have not repeated each menu will different slug

Мой код

    <li class="<?= ($pg == 'departments') ? 'active':''; ?>">
   <a href="departments">Departments</a>
   <ul class="dropdown">
      <?php $sql2 ="SELECT  * from  `departments` ";
         $result2 = $conn->query($sql2);
           while($row2 = $result2->fetch_assoc())
             {
               $department = $row2['dept_name']; ?>
      <li>
         <a href="department"><?=$department;?></a><!-- Department Names as shoen image-->
         <ul class="dropdown dropdown-right">
            <?php  $sql3 ="SELECT  * from  `page` WHERE page_department = '$department' ";
               $result3 = $conn->query($sql3);
               while($row3 = $result3->fetch_assoc())
               {
                  $pname = $row3['page_name'];
                    echo $slug = $row3['page_slug']; ?>
            <li ><a href="department?slug=<?=$slug;?>">About The Department</a></li>
            <li ><a href="head-of-department?slug=<?=$slug;?>">HOD</a></li>
            <li ><a href="department-vision-mission?slug=<?=$slug;?>">Vision &amp; Mission</a></li>
            <li ><a href="department-facilities?slug=<?=$slug;?>">Department Facilities</a></li>
            <li ><a href="department-goals?slug=<?=$slug;?>">Department Goals</a></li>
            <li ><a href="department-faculty?slug=<?=$slug;?>">Faculty</a></li>
            <li ><a href="department-publications?slug=<?=$slug;?>">Faculty Publications</a></li>
            <li ><a href="department-syllabus?slug=<?=$slug;?>">Syllabus</a></li>
            <li ><a href="department-workshops-seminars?slug=<?=$slug;?>">Workshops</a></li>
            <li ><a href="department-student-toppers?slug=<?=$slug;?>">Student Toppers</a></li>
            <?php } } ?>
         </ul>
      </li>
      <?php } ?>
   </ul>
</li>

в приведенном выше коде работает как изображение, могу ли я загрузить этот тип будет.

мои таблицы отделов и страниц выглядят следующим образом department and page

Page table

Ответы [ 2 ]

1 голос
/ 14 марта 2020

ваше повторение пока l oop один раз отметьте это

<ul class="dropdown">
  <?php $sql2 ="SELECT  * from  `departments` ";
     $result2 = $conn->query($sql2);
       while($row2 = $result2->fetch_assoc())
         {
           $department = $row2['nit_dept_name']; ?>
  <li>
     <a href="department"><?=$department;?></a><!-- Department Names as shoen image-->
     <ul class="dropdown dropdown-right">
        <?php  $sql3 ="SELECT  * from  `page` WHERE page_department = '$department' ";
           $result3 = $conn->query($sql3);
           while($row3 = $result3->fetch_assoc())
           {
              $pname = $row3['page_name'];
              $slug = $row3['page_slug']; 
              $href= $row3['href']; //create a column in page table for href 


         ?>
        <li ><a href="<?php echo $href;?>?slug=<?=$slug;?>"><?php echo $pname;?></a></li>

        <?php }  ?>
     </ul>
   </li>
  <?php } ?>
 </ul>
1 голос
/ 27 февраля 2020
you are repeating complete menu in while loop so its showing multiple time, as you already fetching sub menu by table then just create a single link and fetch related sub menu name and url with database but as i found you have different hrefs on your sub menu so you placed multiple links in submenu here you need to update your page table , you need to create a column as code below ,  hope this work:

    <li class="<?= ($pg == 'departments') ? 'active':''; ?>">
    <a href="departments">Departments</a>
    <ul class="dropdown">
      <?php $sql2 ="SELECT  * from  `departments` ";
         $result2 = $conn->query($sql2);
           while($row2 = $result2->fetch_assoc())
             {
               $department = $row2['nit_dept_name']; ?>
      <li>
         <a href="department"><?=$department;?></a><!-- Department Names as shoen image-->
         <ul class="dropdown dropdown-right">
            <?php  $sql3 ="SELECT  * from  `page` WHERE page_department = '$department' ";
               $result3 = $conn->query($sql3);
               while($row3 = $result3->fetch_assoc())
               {
                  $pname = $row3['page_name'];
                  $slug = $row3['page_slug']; 
                  $href= $row3['href']; //create a column in page table for href 


             ?>
            <li ><a href="<?php echo $href;?>?slug=<?=$slug;?>"><?php echo $pname;?></a></li>

            <?php }  ?>
         </ul>
       </li>
      <?php } ?>
     </ul>
    </li>
...