PDA

View Full Version : سوال: ساخت منو به صورت داینامیک



soroush.r70
جمعه 03 بهمن 1393, 21:16 عصر
سلام و ارادت خدمت دوستان گلم
عزیزان من من میخوام منو داینامیکی درست کنم منوی والد رو درست کردم زیر منو رو هم همین ولی وقتی میخوام زیر شاخه ی زیر منو رو درست کنم به مشکل برمیخورم
منو های اول ثابته بعد زیر منوها یه جدول دارن با نام tbl_papergorup و دو فیلد به نام های aid و title برای زیر شاخه ی زیر منو هم یه جدول درست کردم با نام tbl_paprsubgroup و 3 فیلد با نام های bid - title و aid که این aid شماره زیر منو داخلش قرار میگیره حالا وقتی میخوام زیر شاخه های مربوط به زیر منوی خودشو نمایش بدم اینکار انجام نمیشه

از join و چیزهای دیگه هم استفاده کردم ولی فایده ای نداشت

از کد های زیر به این صورت استفاده کردم ممنون میشم راهنماییم کنید مشکلم حل بشه



<li><a href="#" class="mainlevel" '; if($menu=='paper'){ echo' id="active"'; } echo'>مقالات</a> <ul>
';
$class=new content;
$class->query('select * from `tbl_papergorup` order by `aid` desc');
$row=$class->resultset();
foreach($row as $key => $value)
{
echo'
<li><a href="'.URL.'paper.php?aid='.$row[$key]['aid'].'" >'.$row[$key]['title'].'</a>
';
}

$class=new content;
$class->query('select tbl_paprsubgroup.aid,tbl_paprsubgroup.bid,tbl_papr subgroup.title,tbl_papergorup.aid from tbl_paprsubgroup Inner Join tbl_papergorup on tbl_paprsubgroup.aid=tbl_papergorup.aid where tbl_paprsubgroup.aid=tbl_papergorup.aid ');
echo'
<ul>
';
$row=$class->resultset();
foreach($row as $key => $value)
{
echo'
<li><a href="'.URL.'paper.php?bid='.$row[$key]['bid'].'">'.$row[$key]['title'].'</a></li>
';
}
echo'
</ul>
';

echo'
</li>
</ul>
</li>




تصویر مشکل :

127831

soroush.r70
شنبه 04 بهمن 1393, 12:58 عصر
طبق معمول سوالام تو این تالار هیچ که به هیچی

captain_hamid
شنبه 04 بهمن 1393, 13:39 عصر
این سوال بارها مطرح شده.
اینجا جوابتون هست.

http://barnamenevis.org/showthread.php?481720-%D8%B3%D8%A7%D8%AE%D8%AA-%D9%85%D9%86%D9%88-%D8%AA%D9%88-%D8%AF%D8%B1-%D8%AA%D9%88-%D8%AA%D9%86%D9%87%D8%A7-%D8%A8%D8%A7-%DB%8C%DA%A9-%DA%A9%D9%88%D8%A6%D8%B1%DB%8C-(%DA%A9%D8%A7%D8%B1%D8%A8%D8%B1%D8%AF%DB%8C)&p=2157272#post2157272

soroush.r70
شنبه 04 بهمن 1393, 17:45 عصر
مرسی ولی اون صفحه ای که شما دوست عزیز معرفی کردید جوابم نشد ممنونم میشم بزرگوارای دیگه هم راهنمایی کنند

soroush.r70
شنبه 04 بهمن 1393, 21:09 عصر
خودم تا اینجا پیش رفتم خب


<li><a href="#" class="mainlevel" '; if($menu=='paper'){ echo' id="active"'; } echo'>مقالات</a> <ul>
';
$class=new content;
$class->query('select * from `tbl_papergorup` order by `aid` desc');
$row=$class->resultset();
foreach($row as $key => $value)
{
echo'
<li><a href="'.URL.'paper.php?aid='.$row[$key]['aid'].'" >'.$row[$key]['title'].'</a>
';
if($row[$key]['bid']!==0)
{
echo'
<ul>
<li><a href="'.URL.'paper.php?bid='.$row[$key]['bid'].'">'.$row[$key]['subtitle'].'</a></li>
</ul>
';
}
}

echo'
</li>
</ul>
</li>




حالا فقط باید بیام داخل فیلد bid اونایی که با aid یکسان بودو توی منوی مربوط به خودش نشون بدم اینکارو چطور میتونم انجام بدم تا منوم درست بشه

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

127876

در تصویر بالا فیلدهای aid و title من برای زیرمنو و فیلدهای bid و subtitle برای زیرشاخه زیرمنو هستند که ممکنه چندتا زیرمنو داشته باشیم و این زیرمنو هرکدوم ممکنه چندتا زیرشاخه داشته باشند طبق چیزهایی که گفتم و کارهایی که انجام دادم چطور میتونم این مشکلو حل کنم متشکرم

bagherok
شنبه 04 بهمن 1393, 21:26 عصر
هر شاخه اصلی حداکثر چند زیر منو داره؟

id1385
شنبه 04 بهمن 1393, 21:42 عصر
دوس عزیز شما تو طراحی تیبلت اشتباه کردی
با این روش شما محدودیت داری

مثل عکس عمل کن
نمونه کد:

/**
*/
private function GetTableValues($GetonlyActive = false) {
$sWhere = '';
if (isset($this->childOf) && strlen($this->childOf) > 0) {
$sWhere = " WHERE `ParentId` = '" . VWA::TranslateToken($this->childOf) . "';";
}
if (isset($this->viewType) && $this->viewType === 'AsTree') {
$sWhere = " WHERE `ParentId` = '-1'";
}


$dBA = new mPDo(VWA::theConfig());
$this->sql = "SELECT * FROM `" . VWA::getConfigValues('tble_prefix') . $this->PAGEID . '`' . $sWhere;
$QueryResults = $dBA->query($this->sql);
$this->total_rows = $QueryResults->rowCount();
if ($this->total_rows > 0) {


$this->max_pages = ceil($this->total_rows / $this->rows_per_page);
if ($this->links_per_page > $this->max_pages) {
$this->links_per_page = $this->max_pages;
}


if ($this->page > $this->max_pages || $this->page <= 0) {
$this->page = 1;
}


$this->offset = $this->rows_per_page * ($this->page - 1);
$this->sql = ($this->sql . " ORDER BY `" . $this->sortBy . "` " . $this->orderBy . " LIMIT {$this->offset}, {$this->rows_per_page}");


$QueryResult = $dBA->pdoQuery($this->sql);
if ($QueryResult->affectedRows() > 0) {
$QueryArray = $QueryResult->_featch;
if (is_array($QueryArray) && count($QueryArray) > 0) {
return $QueryArray;
}
}
}
return array();
}



توضیح:
http://barnamenevis.org/showthread.php?87983-%D9%85%D8%B4%DA%A9%D9%84-%D8%AF%D8%B1-%D8%B3%D8%A7%D8%AE%D8%AA-%D9%85%D9%86%D9%88%D9%87%D8%A7%DB%8C-%D8%AA%D9%88-%D8%AF%D8%B1-%D8%AA%D9%88-%D8%AA%D9%88%D8%B3%D8%B7-php&p=2132487&viewfull=1#post2132487




موفق باشید

soroush.r70
شنبه 04 بهمن 1393, 21:50 عصر
ممنون از شما امکانش هست از روی کدهای خودم بگید چیکارش کنم بهتره ممنونم

bagherok
شنبه 04 بهمن 1393, 23:08 عصر
خودم تا اینجا پیش رفتم خب

[/CODE]

حالا فقط باید بیام داخل فیلد bid اونایی که با aid یکسان بودو توی منوی مربوط به خودش نشون بدم اینکارو چطور میتونم انجام بدم تا منوم درست بشه

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

127876

در تصویر بالا فیلدهای aid و title من برای زیرمنو و فیلدهای bid و subtitle برای زیرشاخه زیرمنو هستند که ممکنه چندتا زیرمنو داشته باشیم و این زیرمنو هرکدوم ممکنه چندتا زیرشاخه داشته باشند طبق چیزهایی که گفتم و کارهایی که انجام دادم چطور میتونم این مشکلو حل کنم متشکرم

طبق شکل بالا
لینک های نهایی به چه صورت هستند.
بصورت زیر نشون بدید تا بهتر بشه راهنمایی کرد.
مثلا زیرمنو 2 چون bid ایش برابر با خودش هست زیر مجوعه شاخه اصلی قرار میگره و زیرمنو 1 چون bid ایش برابر با 2 هست زیر مجوعه زیر منو2 و
زیرمنو 3 چون bid ایش برابر با 1 هست زیر مجوعه زیر منو 1 و درنهایت بصورت زیر
برحسب title
شاخه صلی -> زیر منو2 -> زیر منو1->زیرمنو3

برحسب aid
شاخه صلی -> aid3<-aid1<-aid2