用户
 找回密码
 入住 CI 中国社区
搜索
查看: 8684|回复: 2
收起左侧

菜鸟求解 Message: Undefined index

[复制链接]
发表于 2012-11-5 14:47:40 | 显示全部楼层 |阅读模式
控制器代码
PHP复制代码
 
function index()
    {
             $this->load->model('tree_model');
       
                 $data=$this->tree_model->get_group_id_by_admin_id($_SESSION["ADMIN_ID"]);
                 
                 $gpid=$data['gpid'];
                 
                 $arr=$this->tree_model->getMenuData($_SESSION["ADMIN_ID"],$gpid);//$arr的数据已获得了,如下
 
                 /*
                 Array ( [0] => Array ( [id] => 35 [name] => 群组管理 [link] => index.php?type=system&do=group [parent_id] => 34 [hide_sub] => 0 ) [1] => Array ( [id] => 36 [name] => 帳號管理 [link] => index.php?type=system&do=user [parent_id] => 34 [hide_sub] => 0 ) [2] => Array ( [id] => 37 [name] => 權限管理 [link] => index.php?type=system&do=group_permission [parent_id] => 34 [hide_sub] => 0 ) [3] => Array ( [id] => 16 [name] => 產品 分類 [link] => index.php?type=web&do=list&cn=product_category&langid=1&ntype=1 [parent_id] => 15 [hide_sub] => 0 ) [4] => Array ( [id] => 44 [name] => 相關鏈接分類 [link] => index.php?type=web&do=list&cn=news_category&ntype=6&langid=1 [parent_id] => 42 [hide_sub] => 0 ) [5] => Array ( [id] => 118 [name] => Biotech 分類 [link] => index.php?type=web&do=list&cn=product_category&langid=1&ntype=2 [parent_id] => 117 [hide_sub] => 0 ) [6] => Array ( [id] => 125 [name] => 消息管理 [link] => [parent_id] => 0 [hide_sub] => 1 ) [7] => Array ( [id] => 5 [name] => 消息分類 [link] => index.php?type=web&do=list&cn=news_category&ntype=2&langid=1 [parent_id] => 3 [hide_sub] => 0 ) [8] => Array ( [id] => 17 [name] => 產品 列表 [link] => index.php?type=web&do=list&cn=product&langid=1&ntype=1 [parent_id] => 15 [hide_sub] => 0 ) [9] => Array ( [id] => 43 [name] => 相關鏈接列表 [link] => index.php?type=web&do=list&cn=news&ntype=6&langid=1 [parent_id] => 42 [hide_sub] => 0 ) [10] => Array ( [id] => 119 [name] => Biotech 列表 [link] => index.php?type=web&do=list&cn=product&langid=1&ntype=2 [parent_id] => 117 [hide_sub] => 0 ) [11] => Array ( [id] => 127 [name] => 消息分類 [link] => index.php?type=web&do=list&cn=news_category&ntype=8&langid=1 [parent_id] => 125 [hide_sub] => 0 ) [12] => Array ( [id] => 4 [name] => 消息列表 [link] => index.php?type=web&do=list&cn=news&ntype=2&langid=1 [parent_id] => 3 [hide_sub] => 0 ) [13] => Array ( [id] => 15 [name] => 產品 管理 [link] => [parent_id] => 0 [hide_sub] => 1 ) [14] => Array ( [id] => 126 [name] => 消息列表 [link] => index.php?type=web&do=list&cn=news&ntype=8&langid=1 [parent_id] => 125 [hide_sub] => 0 ) [15] => Array ( [id] => 128 [name] => 留言列表 [link] => index.php?type=web&do=list&cn=contact&ntype=2 [parent_id] => 0 [hide_sub] => 0 ) [16] => Array ( [id] => 21 [name] => 幻燈片管理 [link] => index.php?type=web&do=list&cn=slider [parent_id] => 0 [hide_sub] => 1 ) [17] => Array ( [id] => 30 [name] => 系統管理 [link] => [parent_id] => 0 [hide_sub] => 1 ) [18] => Array ( [id] => 34 [name] => 管理權限 [link] => [parent_id] => 30 [hide_sub] => 0 ) )
 
*/

   
                 
                         
                 $data['menu']=$this->tree_model->createmenu($arr,base_url(),"admin");
                 
                 
         $this->load->view('_frameset',$data);
                 //$this->getMenuData('sadf');
                 
    }
 
 
 
复制代码

tree_mode模型代碼
PHP复制代码
 
<?
  class Tree_model extends CI_Model{
 
 
     function __construct(){
           
         parent::__construct();
               
    }
 
        function resetArray($parent_id,$array){
        $retVal=array();
       
        //$retVal[count($retVal)-1] = '';
       
        foreach($array as $val){
           if($parent_id==$val["parent_id"]){
            $retVal[]=$val;
             //$retVal[count($retVal)-1]['indent'].='&nbsp;&nbsp;&nbsp;&nbsp;';
            $tmp=array();
            $tmp=$this->resetArray($val["id"],$array);
            if($tmp){
             foreach($tmp as $val2){
              $retVal[]=$val2;
 
              $retVal[count($retVal)-1]['indent'].='&nbsp;&nbsp;&nbsp;&nbsp;';
              $retVal[count($retVal)-1]['flag']++;
             }
            }
            unset($tmp);
           }
        }
        return $retVal;
       
}
 
        function get_group_id_by_admin_id($admin_id){
 
        if(empty($admin_id)) return false;
        global $webdb;
        $query="select * from _sys_admin where id=".$admin_id;
        $row=$this->db->query($query);
        return $row->row_array();
    }
 
        function getMenuData($admin_id,$gpid){
        //echo $admin_id;
        if(empty($admin_id)) return false;
        global $webdb;
        $where =" or admin_id=".$admin_id;
        $group_id=$gpid;
        if($group_id) $where.=" or group_id=".$group_id;
        $sql="select s.id,s.name,s.link,s.parent_id,s.hide_sub from _sys_section s inner join _sys_group_perm p on p.perm_id=s.id where (1 ".$where."  ) AND status=1 group by s.id order by s.sort,s.id asc";
       
        $row=$this->db->query($sql);
        //print_r($row->result_array());
        return $row->result_array();
 
        }
       
       
        function hasSub($id,$array){
        $retVal=false;
        foreach($array as $ary){
                if($ary["parent_id"]==$id){
                        $retVal=true;
                        break;
                }
        }
        return $retVal;
       }
 
        function createmenu($array,$imgRootPath,$divIdPrefix="",$parent_id=0){
        $result="";
        $rs=$this->resetArray($parent_id,$array);
        $result= '<div class="tree_menu" id="'.$divIdPrefix.'_tree_menu" >';
        for($i=0;$i<count($rs);$i++){
                $result.="<div width='100%'>";
                for($j=0;$j<$rs[$i]["flag"];$j++){
                        if($rs[$i]["name"]&&(($j+1)==$rs[$i]["flag"])){
                                if($rs[$i+1]["parent_id"]==$rs[$i]["parent_id"]){
                                        $result.= '<img src="'.$imgRootPath.'style/tree/H.gif">';
                                }else{
                                        if($rs[$i]["flag"]<=($rs[$i+1]["flag"]+1)){
                                                $result.= '<img src="'.$imgRootPath.'style/tree/H.gif">';
                                        }else{
                                                $result.= '<img src="'.$imgRootPath.'style/tree/L.gif">';
                                        }
                                }
                                //echo "<hr />";
                        }else{
                                $result.= '<img src="'.$imgRootPath.'style/tree/I.gif">';
                        }
                }
               
                $rsid=$rs[$i]["id"];
                $flag_img="nfolder.gif";
                $onclick="";
                $A_onclick="";
                if($this->hasSub($rs[$i]["id"],$array)){
                        $flag_img="ofolder.gif";
                        //隱藏
                        if($rs[$i]["hide_sub"]==1) $flag_img="folder.gif";
                       
                        $onclick=' ';
                        $A_onclick="javascript:OnClickOutline('".$imgRootPath."',".$rsid.")";
                }
               
                $result.= '<img class="Outline" id="ID'.$rsid.'" style="CURSOR: pointer" '.$onclick.' alt="" src="'.$imgRootPath.'style/tree/'.$flag_img.'" />&nbsp;';
                if($rs[$i]["link"]){
                        if($rsid==105){
                                $result.='<a href="javascript:;">';
                        }else{
                                $result.='<a href="'.$rs[$i]["link"].'">';
                        }
                }else{
                        if($A_onclick){
                                $result.='<a href='.$A_onclick;
                        }else{
                                $result.='<a href="javascript:void(0);"';
                        }
 
                        $result.='>';
                }
                $result.= $rs[$i]["name"];
                $result.='</a>';
               
                $result.="</div>";
               
//              if($rs[$i]["pid"]==0) $result.= "<br />";
               
                //</div>
                if($rs[$i]["flag"]>$rs[$i+1]["flag"]){
                        $div_n=$rs[$i]["flag"]-$rs[$i+1]["flag"];
                        for($div_i=0;$div_i<$div_n;$div_i++){
                                $result.=  "</div>";
                        }
                }
                //end </div>
                //<div>
                if($this->hasSub($rs[$i]["id"],$array)){
                        $result.= '<div id="ID'.$rsid.'d"';
                        if($rs[$i]["hide_sub"]==1) $result.= ' style="display:none" ';
                        $result.= '>';
                }
                //end <div>
        }
        //$result.= '  <div id="infodisplay"><font color="#999999">點擊+展開節點</font></div>';
        $result.= '</div>';
        $result.="<script>";
        $result.="      $('#".$divIdPrefix."_tree_menu a').click(function (){";
        $result.="              if($(this).attr('href')!='javascript:void(0);') {";
        $result.="                      SetCookie('".$divIdPrefix."_tree_menu',$(this).attr('href'));";
        $result.="                      SetCookie('".$divIdPrefix."_menu_name',$(this).text());";
        $result.="      }});";
        $result.="      tree_menu_setNow(GetCookie('".$divIdPrefix."_tree_menu'),'".$divIdPrefix."_tree_menu');";
        $result.="</script>";
        return $result;
    }
 
}
?>
 
复制代码


为什么我使用 createmenu函数,在调用resetArray函数是,会报错的??

A PHP Error was encountered
Severity: Notice
Message: Undefined index: indent
Filename: models/tree_model.php
Line Number: 44
A PHP Error was encountered
Severity: Notice
Message: Undefined index: flag
Filename: models/tree_model.php
Line Number: 45

刚玩ci几天,不是很会玩,求解!!


发表于 2012-11-6 08:43:17 | 显示全部楼层
你的变量好像都没有赋值吧
先设置下
$retVal[count($retVal)-1] = array('indent' => '&nbsp;&nbsp;&nbsp;&nbsp;');
 楼主| 发表于 2012-11-6 09:37:19 | 显示全部楼层
大道达人 发表于 2012-11-6 08:43
你的变量好像都没有赋值吧
先设置下
$retVal[count($retVal)-1] = array('indent' => '&nbsp;&nbsp;&nbsp;& ...

resetArray  函数错误可以了,麻烦写下 createmenu  函数 怎样赋值,放在哪个位置,为什么我还有错的??

本版积分规则