راهنمایی در مورد تابع بازگشتی برای منو و زیر منو

mohan21

Member
سلام

من یه گالری تصویر با امکان N بخش و زیر مجموعه دارم ...
تونستم تابع های زیر رو برای نمایش بنویسم ...
اما نمیدانم تا چه حد دارای کارایی هست ...

کسی میتونه راهنمایی کنه و اشکالات این روش رو بگه و برای اصلاح کمک کنه ؟؟؟

در وهله اول تابع segments_to_array فراخوانی و اطلاعات لازم بصورت آرایه در list قرار میگیره

PHP:
                function segments_to_array ()
                {
                 $select_segments_arr = " select * from segments " ;
                 $result_segments_arr = mysql_query ( $select_segments_arr ) ;
                 if ( $result_segments_arr )
                 {
                     $num_segments_arr = mysql_num_rows ( $result_segments_arr ) ;
                     if ( $num_segments_arr )
                     {
                      $counter__arr = 0 ;
                      
                      while ( $rows_segments_arr = mysql_fetch_array ( $result_segments_arr ) )
                         {
                             $id__segments_   [$counter__arr] = $rows_segments_arr ['id']        ;
                             $name__segments_ [$counter__arr] = $rows_segments_arr ['name_fa']  ;
                             $under__segment_ [$counter__arr] = $rows_segments_arr ['under_segment'] ;
                             
                             $counter__arr ++ ;
                         }
                         
                         return array ( $id__segments_ , $name__segments_ , $under__segment_ ) ;
                      }
     }
    }
    list ( $id__segments_array , $name__segments_array , $under__segment_array ) = segments_to_array () ;

بعد از این تابع نوبت به نمایش مجموعه منو و زیر مجموعه هاست:

PHP:
     echo '
        <div id="menu_open" align="right">
            <ul>' ;
           
        $n_ = count ( $id__segments_array ) ;
        
          for ( $i_ = 0 ; $i_ < $n_ ; $i_ ++ )
          {
           if ( $under__segment_array [$i_] == 0 )
           {
            echo "
         <li class=\"hascld\">
                                  <a class=\"arrow_menu\">$name__segments_array[$i_]</a>" ;
                                  
                                  create_under_menu ( $n_ , $i_ , $id__segments_array , $under__segment_array , $name__segments_array ) ;
                 echo "
         </li>" ;
           }
          }
           
            echo '
            </ul>
        </div>' ;

در قسمت اول مجموعه نمایش داده میشه و برای نمایش زیر مجموعه ها تابع create_under_menu فراخوانی میشه :

PHP:
     function create_under_menu ( $n_ , $i_ , $id__segments_array , $under__segment_array , $name__segments_array )
     { 
      $okay = 0 ;
                                   
           for ( $j_ = 0 ; $j_ < $n_ ; $j_ ++ )
        {
         if ( $id__segments_array [$i_] == $under__segment_array [$j_] )
         {
          if ( $okay == 0 )
            echo "
         <ul>" ;
         
        echo "
        <li class=\"hascld\">
         <a class=\"arrow_menu\">$name__segments_array[$j_]</a>" ;
               
         create_under_menu ( $n_ , $j_ , $id__segments_array , $under__segment_array , $name__segments_array ) ;
               
        echo "
        </li>" ;
               
        $okay = 1 ;
              }
              }
           
      if ( $okay == 1 )
       echo "
       </ul>" ;
     }

که این تابع بصورت بازگشتی عمل میکنه:


 
آخرین ویرایش:

mohan21

Member
کسی نظری نداره ...

برای بهتر انجام دادن اینکار کمک کنید ............
 

جدیدترین ارسال ها

بالا