需要Php递归下拉菜单帮助

时间:2013-09-29 08:23:32

标签: php php-5.3

我需要显示一个下拉列表,其中包含我编写此代码的课程。但我的问题是它很好地显示了课程类别和子类别。但我需要将类别包装到optiongroup标签中。我厌倦了,但失败了。

这是我的表结构

id  parent_id   course_name
 1       0             UG
 2       0             PG
 3       1             Bsc
 4       3             Computer science
 5       3             Chemisty
 6       2             Msc
 7       6             Computer science
 8       6             Chemistry  

这是recurssion的php代码

function load_course_category(){
        $this->db->select('*');
        $this->db->from('courses_category');
        $this->db->where('parent_id','0');      
        $this->db->order_by("id", "desc"); 
        $query = $this->db->get();

        foreach($query->result() as $row) {     
            $this->db->where('parent_id', $row->id);
            $this->db->from('courses_category');
            $count = $this->db->count_all_results();            
            if($count>0){

                    echo '<optiongroup label="'.$row->course_name.'">';     

            }else{

                    echo '<optiongroup label="'.$row->course_name.'"></optiongroup>';       

            }


            $this->get_children($row->id);
        }

    }

function get_children($parent, $level = 1){
        $this->db->select('*');
        $this->db->from('courses_category');
        $this->db->where('parent_id',$parent);      
        $this->db->order_by("id", "desc"); 
        $query = $this->db->get();

        if($query->num_rows()>0){

                foreach($query->result() as $row) {

                    $this->db->where('parent_id', $row->id);                
                    $this->db->from('courses_category');
                    $count = $this->db->count_all_results();
                    if($count>0){   

                        echo '<optiongroup label="'.$row->course_name.'">';         

                    }else{

                        echo '<optiongroup label="'.$row->course_name.'"></optiongroup>';           

                    }
                    $this->get_children($row->id, $level+1);
                }

        }
}

此处选项组未正确关闭。任何人都可以帮我纠正这个问题吗?

感谢。

1 个答案:

答案 0 :(得分:0)

无论optiongroup语句的结果如何,您都在打开新的IF,但之后只关闭if ($count>0)