"메뉴"아래 그림은 내가 디자인하고자하는 메뉴를 보여 주며 "table : menu"그림은 메뉴를 개발하는 데 사용되는 레코드가있는 테이블을 보여줍니다. 가장 하단은 HTML
및 PHP
을 함께 사용하는 코드에 대한 내 견해입니다. 지금까지 메뉴에 표시된 것처럼 2 단계의 하위 메뉴가 있습니다. 테이블 레코드에 따라 다른 하위 메뉴를 추가로 사용하려면 어떻게해야합니까? 하드 코드 대신 동적 재귀 foreach 및 if 문이 필요합니다. 재귀의 횟수는 테이블 레코드에 따라 다릅니다. 내가 어떻게 했어? 현재 코드 점화 장치를 사용하고 있습니다. 감사합니다동적 재귀 foreach 및 if 문을 출력 하위 메뉴
메뉴
테이블 : 메뉴
<ul class="sidebar-menu">
<?php
$main = $this->db->query("SELECT * FROM menu WHERE link_id = '' ");
foreach($main->result() as $row)
{
$check_main = $this->db->query("SELECT * FROM menu WHERE link_id IN (SELECT id FROM menu WHERE id = '$row->id') ");
if($check_main->num_rows() > 0)
{ ?>
<li class="treeview">
<a href="#">
<i class="fa fa-share"></i> <span><?php echo $row->description; ?></span>
<span class="pull-right-container">
<i class="fa fa-angle-left pull-right"></i>
</span>
</a>
<ul class="treeview-menu">
<?php
$main2 = $this->db->query("SELECT * FROM menu WHERE link_id = '$row->id' ");
foreach($main2->result() as $row2)
{
$check_main2 = $this->db->query("SELECT * FROM menu WHERE link_id = '$row2->id' ");
if($check_main2->num_rows() > 0)
{ ?>
<li>
<a href="#"><i class="fa fa-circle-o"></i><?php echo $row2->description; ?>
<span class="pull-right-container">
<i class="fa fa-angle-left pull-right"></i>
</span>
</a>
<ul class="treeview-menu">
<?php
$main3 = $this->db->query("SELECT * FROM menu WHERE link_id = '$row2->id' ");
foreach($main3->result() as $row3)
{
$check_main3 = $this->db->query("SELECT * FROM menu WHERE link_id = '$row3->id' ");
if($check_main3->num_rows() > 0)
{ ?>
<li>
<a href="#"><i class="fa fa-circle-o"></i><?php echo $row3->description; ?>
<span class="pull-right-container">
<i class="fa fa-angle-left pull-right"></i>
</span>
</a>
</li>
<?php }
else
{ ?>
<li><a href="<?php echo site_url('Report_controller'); ?>?guid=<?php echo $row3->id; ?>"><i class="fa fa-circle-o"></i><?php echo $row3->description; ?></a></li>
<?php }
} ?>
</ul>
</li>
<?php }
else
{ ?>
<li><a href="<?php echo site_url('Report_controller'); ?>?guid=<?php echo $row2->id; ?>"><i class="fa fa-circle-o"></i><?php echo $row2->description; ?></a></li>
<?php }
} ?>
</ul>
</li>
<?php }
else
{ ?>
<li><a href="<?php echo site_url('Report_controller'); ?>?guid=<?php echo $row->id; ?>"><i class="fa fa-share"></i><?php echo $row->description; ?></a></li>
<?php }
} ?>
</ul>
함수로 메뉴를 생성하는 코드 (기본 'foreach' 루프)를 제외하고 그 함수 중에 하위 메뉴에 대해 함수를 다시 호출해야하는지 결정할 수 있습니다 그러므로 재귀) –
나에게 예제를 제공해 주시겠습니까? 감사. – Tee