رتبه موضوع:
  • 0 رای - 0 میانگین
  • 1
  • 2
  • 3
  • 4
  • 5
نحوه پیمایش برعکس (حل شد)
#1
سلام دوستان

من یک treemenu تو سایتم ایجاد کردم , تو نحوه پیمایش از فرزند به والد موندم چیکار کنم . میشه راهنمایی بفرمائید ...

ساختار جدول به این شکله :
id
name
parentId


تشکر
پاسخ
تشکر شده توسط:
#2
چرا از فرزند میخواین به والد برسین؟ توی TreeView که این مدلی نیست. شاید توی Breadcrumbs مدنظرتونه.
پاسخ
تشکر شده توسط: mgbg
#3
بله جناب مهندس منظورم همون Breadcrumbs بود نمیدونم چرا گفتم TreeView , اما حل شد تشکر
پاسخ
تشکر شده توسط:
#4
لطفاً راه حل رو هم به اشتراک بگذارین درصورت امکان. ممکنه مشکل برخی دیگه از دوستان هم باشه و بتونید بهشون کمک کنید.
پاسخ
تشکر شده توسط:
#5
    function Lists($parent = 0)
   {
       connect();
       $result = select("select * from category where ParentId_Fk = " . $parent);
       disconnect();

       $i = 0;
       $children = array();
       while($row = mysql_fetch_assoc($result)) 
       {
           $children[$i] = array();
           $children[$i]['id'] = $row['Id'];
           $children[$i]['name'] = $row['Name'];
           $children[$i]['children'] = Lists($row['Id']);
           $i++;
       }
       return $children;
   }

/************************************************/

function menu($array = null) 
   {
       if (count($array))
       {
           foreach ($array as $item)
           {
               echo $item['name'] . ' / ';
               if (count($item['children'])) {
                   menu($item['children']);
               }
               echo '<br />';
           }
       }
   }


menu(Lists());


از کد بالا برای پیمایش به صورت TreeView استفاده کردم که اگه تو تگ های ul و  li ازش استفاده کنین می توانید یک منوی آبشاری رو داشته باشین

برای پیمایش به صورت Breadcrumbs هم کافیه تابع List رو به این صورت بنویسید :


    function Lists($parent)
    {
       connect();
       $result = select("select * from category where Id = " . $parent);
       disconnect();

       $i = 0;
       $children = array();
       while($row = mysql_fetch_assoc($result)) 
       {
           $children[$i] = array();
           $children[$i]['id'] = $row['Id'];
           $children[$i]['name'] = $row['Name'];
           $children[$i]['children'] = Lists($row['ParentId_Fk']);
           $i++;
       }
       return $children;
   }


makeMenu(Lists('شماره آیدی فرزند باید وارد شود'));
پاسخ
تشکر شده توسط:




کاربران در حال بازدید این موضوع: 1 مهمان