當前位置:首頁 » 編程語言 » 多級菜單php

多級菜單php

發布時間: 2022-05-24 20:10:52

php如何實現二級導航菜單

php 資料庫設計

id title url pid leve
1 一級菜單 index.php 0 1
2 二級菜單 list.php 2 2

這種格式的 可以無限級分類
取數據的時候 按level 取 幾級就是幾級 ,

循環的話 就是先 循環 level=1的分類,然後再循環裡面套小循環

這是最基本的方法

還有一種就是

自定義函數 生成tree 樹形結構 最後用css, js美化加特效

❷ 用php如何製作一個三級聯動菜單呢

這個需要和JS一起使用製作 單獨PHP是不可能完成的
在一個資料庫要好好設計比如 1級2級3級菜單的ID 和表示每個級別的CODE之類的

❸ 如何用PHP代碼創建多級下拉菜單

不太清楚你要什麼效果,不過感覺你要的效果用php實現比較不實用。php是伺服器腳本,如果要實現這樣的效果,每點擊一次,網頁就得重新傳輸一次數據,就意味著得刷新一次頁面,應該比較耗伺服器資源。
如果是下拉菜單,你可以使用html的select標簽實現。select標簽的實用:
http://www.w3school.com.cn/tags/tag_select.asp
如果是類似類似大部分網站上的導航欄,點擊某字樣出現詳細分類之類的。如本網頁中的「問題庫」字樣,就可以通過div+javascript,再加點
css效果,就可以實現。
http://www.ice.net/html/list_622.html裡面有不同的導航欄顯示隱藏效果。
最後,以上只是個人拙見,你覺得有可用之處就參考下吧,我也是新手,希望不會誤導你。

❹ PHP如何實現多級菜單(多維數組的形式)

$rs = mysql_query($sql);
這里的sql有問題。
大概是你sql語句出錯了。導致返回了false;
所以mysql_fetch_array()出錯。
檢查一下sql

❺ 求PHP多級菜單數據查詢及展示代碼的演算法優化(全部分奉上)

publicfunctionempowerList(){
$sql="selectueid,pid,name,,ueidASC";
$datas=$this->db->getAll($sql);
$list=array();
if(!empty($datas)){
foreach($datasas$k=>$v){
$list[$v['pid']][]=$v;
}
}
return$list;
}


然後你在根據$list的結構組織一下頁面顯示就好了

❻ phpcms v9 怎麼做二級菜單

phpcms v9中調用二級菜單有2種方法:
第一種:
{loop subcat(catid) $v}
{/loop}
這種方法的好處是代碼簡潔,容易記住。
缺點:不能限制顯示的條數
第二種方法:
{pc:content action=」category」 catid=」0″ }
{loop $data $r}
{$r[catname]} ——————-頂級欄目
{pc:content action=」category」 catid=」$r[catid]「}
{loop $data $v}
{$v[catname]}——————二級欄目
{/loop}
{/pc}
{/loop}
{/pc}
這種方法的優點:可以控制你想要的條數

❼ thinkphp框架怎麼做一個三級菜單

thinkphp框架onethink後台支持三級菜單
onethink後台支持三級菜單,CMS管理後台1.0版本本身不支持三級菜單,稍加改動,即可支持無限級分類
/**
* 獲取控制器菜單數組,二級菜單元素位於一級菜單的'_child'元素中
* @author 朱亞傑 <[email protected]>
*/
final public function getMenus($controller=CONTROLLER_NAME){
// $menus = session('ADMIN_MENU_LIST'.$controller);

$flag=false;//是否開啟menu三級菜單

if(empty($menus)){
// 獲取主菜單
$where['pid'] = 0;
$where['hide'] = 0;
if(!C('DEVELOP_MODE')){ // 是否開發者模式
$where['is_dev'] = 0;
}
$menus['main'] = M('Menu')->where($where)->order('sort asc')->select();

$menus['child'] = array(); //設置子節點

//高亮主菜單
$current = M('Menu')->where("url like '%{$controller}/".ACTION_NAME."%'")->field('id')->find();
if($current){
$nav = D('Menu')->getPath($current['id']);
$nav_first_title = $nav[0]['title'];

foreach ($menus['main'] as $key => $item) {
if (!is_array($item) || empty($item['title']) || empty($item['url']) ) {
$this->error('控制器基類$menus屬性元素配置有誤');
}
if( stripos($item['url'],MODULE_NAME)!==0 ){
$item['url'] = MODULE_NAME.'/'.$item['url'];
}
// 判斷主菜單許可權
if ( !IS_ROOT && !$this->checkRule($item['url'],AuthRuleModel::RULE_MAIN,null) ) {
unset($menus['main'][$key]);
continue;//繼續循環
}

// 獲取當前主菜單的子菜單項
if($item['title'] == $nav_first_title){
$menus['main'][$key]['class']='current';
//生成child樹
$groups = M('Menu')->where("pid = {$item['id']}")->distinct(true)->field("`group`")->select();
if($groups){
$groups = array_column($groups, 'group');
}else{
$groups = array();
}

//獲取二級分類的合法url
$where = array();
$where['pid'] = $item['id'];
$where['hide'] = 0;
if(!C('DEVELOP_MODE')){ // 是否開發者模式
$where['is_dev'] = 0;
}
$second_urls = M('Menu')->where($where)->getField('id,url');
$third_urlss=array();

if(!empty($second_urls) && $flag){
foreach($second_urls as $key=>$v){

$wheres = array();
$wheres['pid'] = $key;
$wheres['hide'] = 0;
if(!C('DEVELOP_MODE')){ // 是否開發者模式
$wheres['is_dev'] = 0;
}
$third_urls[] = M('Menu')->where($wheres)->getField('id,url');
foreach($third_urls as $vv){
foreach($vv as $key=>$vs){
$third_urlss[$key]=$vs;
}
}
}
}

if(!IS_ROOT){
// 檢測菜單許可權
$to_check_urls = array();

foreach ($second_urls as $key=>$to_check_url) {
if( stripos($to_check_url,MODULE_NAME)!==0 ){
$rule = MODULE_NAME.'/'.$to_check_url;
}else{
$rule = $to_check_url;
}
if($this->checkRule($rule, AuthRuleModel::RULE_URL,null))
$to_check_urls[] = $to_check_url;
}
if(!empty($third_urlss) && $flag){
foreach ($third_urlss as $key=>$to_check_urlss) {
if( stripos($to_check_urlss,MODULE_NAME)!==0 ){
$rules = MODULE_NAME.'/'.$to_check_urlss;
}else{
$rules = $to_check_urlss;
}
if($this->checkRule($rules, AuthRuleModel::RULE_URL,null))

echo $rules."<br/>";
$to_check_urlsss[] = $to_check_urlss;
}
}

}

// 按照分組生成子菜單樹
foreach ($groups as $g) {
$map = array('group'=>$g);
if(isset($to_check_urls)){
if(empty($to_check_urls)){
// 沒有任何許可權
continue;
}else{
$map['url'] = array('in', $to_check_urls);
}
}
$map['pid'] = $item['id'];
$map['hide'] = 0;
if(!C('DEVELOP_MODE')){ // 是否開發者模式
$map['is_dev'] = 0;
}
$menuList = M('Menu')->where($map)->field('id,pid,title,url,tip')->order('sort asc')->select();

$menus['child'][$g] = list_to_tree($menuList, 'id', 'pid', 'operater', $item['id']);
//支持三級菜單
if(!empty($menus['child'][$g]) && $flag){
foreach($menuList as $key=>$v){
$maps['pid'] = $v['id'];
$menuLists = M('Menu')->where($maps)->field('id,pid,title,url,tip')->order('sort asc')->select();
$menus['child'][$g][$key]['ttt'] = list_to_tree($menuLists, 'id', 'pid', 'operater', $v['id']);
}
}
}
if($menus['child'] === array()){
//$this->error('主菜單下缺少子菜單,請去系統=》後台菜單管理里添加');
}
}
}
}
// session('ADMIN_MENU_LIST'.$controller,$menus);
}
return $menus;
}
然後Public/base.html
<!-- 邊欄 -->
<div class="sidebar">
<!-- 子導航 -->
<block name="sidebar">
<div class="sidebar-collapse" id="sidebar-collapse">
<i class="fa fa-angle-double-left"><<</i>
</div>
<div id="subnav" class="subnav">
<notempty name="_extra_menu">
{// 動態擴展菜單 //}
{:extra_menu($_extra_menu,$__MENU__)}
</notempty>
<volist name="__MENU__.child" id="sub_menu">
<!-- 子導航 -->
<notempty name="sub_menu">
<notempty name="key"><h3><i class="icon icon-unfold"></i>{$key}</h3></notempty>
<ul class="side-sub-menu">
<volist name="sub_menu" id="menu">
<li>
<a class="item" href="{$menu.url|U}">{$menu.title}</a>
</li>
</volist>
<notempty name="menu.ttt">
<volist name="menu.ttt" id="menus">
<li>
<a class="item" href="{$menus.url|U}">{$menus.title}</a>
</li>
</volist>
</notempty>
</ul>
</notempty>
<!-- /子導航 -->
</volist>
</div>
</block>
<!-- /子導航 -->
</div>

❽ php里多級聯動下拉菜單如何做

資料庫設計:
database:db;
table:sort1,sort2;
sort1-data:idnamevablue
1aa
2bb

sort2-data:idnameparent_id
1aa-a1
2aa-x1
3bb-m2
4bb-j2
在dw中放置2個跳轉菜單,
在第一個select中添如下代碼:
<option>---請選擇---</option>
<?php
$host="localhost";
$db_name="db";
$username="root";
$password="";
$conn=mysql_connect($host,$username,$password)ordie("不能鏈接到資料庫!");
$db=mysql_select_db($db_name,$conn);
$sql="select*fromsort1orderbyidASC";
$result=mysql_db_query($db_name,$sql);
while($row=mysql_fetch_array($result)){
$sort1_id=$row["id"];
$sort1_name=$row["name"];
$sort1_value=$row["value"];
if(!$sort1_value){
$str="<optionvalue='?data1=$sort1_id'";
if($row["id"]==$data1){
$str.="selected";
}
}
else{
$str="<optionvalue='$sort1_value'";
}
$str.=">$sort1_name</option>";
echo$str;
}
?>

❾ php數組的重組及多級下拉菜單

<?php
$arr = array(
array("title"=>"w15","url"=>"l2","url2"=>"width","value"=>"3.2"),
array("title"=>"w15","url"=>"l3","url2"=>"width","value"=>"3.1"),
array("title"=>"w15","url"=>"l4","url2"=>"width","value"=>"3.0"),
array("title"=>"w15","url"=>"l5","url2"=>"width","value"=>"3.1"),
array("title"=>"w15","url"=>"l6","url2"=>"width","value"=>"3.4"),
array("title"=>"w16","url"=>"l8","url2"=>"width","value"=>"3.8"),
array("title"=>"w16","url"=>"l9","url2"=>"width","value"=>"3.9")
);

$new_arr = array();

foreach($arr as $item) {
$k = $item['title'];
if(!isset($new_arr[$k])) {
$new_arr[$k] = array(
'title' => $k,
'url' => array($item['url']),
'url2' => array($item['url']),
'value' => array($item['value'])
);
} else {
$new_arr[$k]['url'][] = $item['url'];
$new_arr[$k]['url2'][] = $item['url2'];
$new_arr[$k]['value'][] = $item['value'];
}
}

//print_r($new_arr); // 如果用 title 做 key, 到這兒就可以了

$new_arr = array_values($new_arr);

print_r($new_arr);

❿ 在php後台中如何實現頁面左側常用的樹狀多級菜單呢如果可以的說下原理並留下一個實例吧。謝謝了!

//'name'=>'標題','main_page'=>'左導航','r_nav'=>'默認主頁'
$group_type_arr=array(
2=>array('name'=>'企業管理','main_page'=>'admin_enterprise','r_nav'=>'admin_enterprise_open'),
4=>array('name'=>'個人用戶管理','main_page'=>'user_ctrl','r_nav'=>'admin_user_dat'),
5=>array('name'=>'點評管理','main_page'=>'comment_ctrl','r_nav'=>'comment'),
7=>array('name'=>'統計管理','main_page'=>'stats_ctrl','r_nav'=>'admin_proct_business_count'),
8=>array('name'=>'群組管理','main_page'=>'group_ctrl','r_nav'=>'useradmin'),
);
這是左側第一級菜單,循環這個,在它裡面可以直接加入二級菜單

熱點內容
李宗瑞文件夾 發布:2025-02-13 04:27:59 瀏覽:609
phpparent的parent 發布:2025-02-13 04:18:08 瀏覽:451
小容量存儲器市場 發布:2025-02-13 04:01:11 瀏覽:371
ickeck文件夾 發布:2025-02-13 04:00:21 瀏覽:640
上傳照片文案 發布:2025-02-13 03:53:13 瀏覽:426
電腦版花雨庭怎麼調中文伺服器 發布:2025-02-13 03:32:35 瀏覽:37
linux開發android 發布:2025-02-13 03:32:34 瀏覽:486
查詢重復欄位的sql語句 發布:2025-02-13 03:12:42 瀏覽:323
8uftp上傳網站 發布:2025-02-13 03:01:57 瀏覽:243
電腦玩游戲如何配置電源 發布:2025-02-13 03:01:53 瀏覽:362