mjdzhd 发表于 2012-11-5 14:47:40

菜鸟求解 Message: Undefined index

控制器代码

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 ( => Array ( => 35 => 群组管理 => index.php?type=system&do=group => 34 => 0 ) => Array ( => 36 => 帳號管理 => index.php?type=system&do=user => 34 => 0 ) => Array ( => 37 => 權限管理 => index.php?type=system&do=group_permission => 34 => 0 ) => Array ( => 16 => 產品 分類 => index.php?type=web&do=list&cn=product_category&langid=1&ntype=1 => 15 => 0 ) => Array ( => 44 => 相關鏈接分類 => index.php?type=web&do=list&cn=news_category&ntype=6&langid=1 => 42 => 0 ) => Array ( => 118 => Biotech 分類 => index.php?type=web&do=list&cn=product_category&langid=1&ntype=2 => 117 => 0 ) => Array ( => 125 => 消息管理 => => 0 => 1 ) => Array ( => 5 => 消息分類 => index.php?type=web&do=list&cn=news_category&ntype=2&langid=1 => 3 => 0 ) => Array ( => 17 => 產品 列表 => index.php?type=web&do=list&cn=product&langid=1&ntype=1 => 15 => 0 ) => Array ( => 43 => 相關鏈接列表 => index.php?type=web&do=list&cn=news&ntype=6&langid=1 => 42 => 0 ) => Array ( => 119 => Biotech 列表 => index.php?type=web&do=list&cn=product&langid=1&ntype=2 => 117 => 0 ) => Array ( => 127 => 消息分類 => index.php?type=web&do=list&cn=news_category&ntype=8&langid=1 => 125 => 0 ) => Array ( => 4 => 消息列表 => index.php?type=web&do=list&cn=news&ntype=2&langid=1 => 3 => 0 ) => Array ( => 15 => 產品 管理 => => 0 => 1 ) => Array ( => 126 => 消息列表 => index.php?type=web&do=list&cn=news&ntype=8&langid=1 => 125 => 0 ) => Array ( => 128 => 留言列表 => index.php?type=web&do=list&cn=contact&ntype=2 => 0 => 0 ) => Array ( => 21 => 幻燈片管理 => index.php?type=web&do=list&cn=slider => 0 => 1 ) => Array ( => 30 => 系統管理 => => 0 => 1 ) => Array ( => 34 => 管理權限 => => 30 => 0 ) )

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



tree_mode模型代碼

<?
class Tree_model extends CI_Model{


   function __construct(){
          
         parent::__construct();
               
    }

        function resetArray($parent_id,$array){
        $retVal=array();
       
        //$retVal = '';
       
        foreach($array as $val){
           if($parent_id==$val["parent_id"]){
          $retVal[]=$val;
             //$retVal['indent'].='&nbsp;&nbsp;&nbsp;&nbsp;';
          $tmp=array();
          $tmp=$this->resetArray($val["id"],$array);
          if($tmp){
             foreach($tmp as $val2){
              $retVal[]=$val2;

            $retVal['indent'].='&nbsp;&nbsp;&nbsp;&nbsp;';
              $retVal['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 = array('indent' => '&nbsp;&nbsp;&nbsp;&nbsp;');

mjdzhd 发表于 2012-11-6 09:37:19

大道达人 发表于 2012-11-6 08:43 static/image/common/back.gif
你的变量好像都没有赋值吧
先设置下
$retVal = array('indent' => '&nbsp;&nbsp;&nbsp;& ...

resetArray函数错误可以了,麻烦写下 createmenu函数 怎样赋值,放在哪个位置,为什么我还有错的??
页: [1]
查看完整版本: 菜鸟求解 Message: Undefined index