下拉菜单打开另一个下拉菜单 - CodeIgniter

时间:2017-06-19 23:32:15

标签: javascript php jquery html codeigniter

我有一个下拉菜单,我提供foreach语句for和on select我需要它打开另一个下拉菜单来指定项目

DropDown 1 - 分类(全部完成)

点击类别

打开与该类别关联的所有产品。

我应该执行Ajax请求然后在控制器中选择该类别下的所有产品 - 返回数组然后提供foreach语句来选择这些产品吗?

还会感谢以前做过类似事情的链接。

1 个答案:

答案 0 :(得分:0)

以下是我用于创建ajax驱动的多下拉菜单的代码段代码。实际上我为了简单起见我有两种方法我发布最简单的方法,即没有json操作的方法。

在视图页面

 <select class="form-control" name="categories" id="categories" onchange="load_products()" > 
     <option value="" selected="selected"><?php echo "Select A Category" ; ?></option> 
 </select> 

 <select class="form-control" name="products" id="products" required/></select>

视图页面中的JavaScript代码

<script> 
    function load_products() 
    { 
        categories=$('#categories').val(); 

        if($('#categories').val()!="" && $('#categories').val()!="*") { 

            $.ajax({ 
                type: "POST", 
                url: " <?php echo base_url('Home/load_products'); ?>", 
                data: "categories=" + categories, 
                success: function (msg) { 
                    if (msg) { 
                        $('#products').html(msg); 
                      //  $('#products').removeClass('hidden') 
                    } 
                    } 
            }); 
           // return false; 
        } 
        else { 
            $('#products').html(''); 
     //   $('#products').addClass('hidden') 

        } 
    } 
</script> 

现在在控制器中

      function load_products() 
        { 
            $categories=$this->input->post('categories'); 

            $products=$this->Homemodel->allproducts($categories); 

            if($products!=NULL) 
            { 
                $fop="Select A Product "; 
              echo ($this->create_drop_down($fop,$products,'productname','id')); 
            } 
            else{ 
                echo "<option value=''>No Product Found</option>"; 

            } 
        } 

      function create_drop_down($options,$opts,$txt,$val) 
       { 
            $options = "<option value=''>".$options."</option>"; 

            if(!empty($opts)) 
            { 
                foreach ($opts as $row) 
                { 

                    $options.="<option value='".$row->$val."'>".$row->$txt."</option>"; 
                } 
            } 
            return $options; 
        } 

我正在跳过模型代码。如果这种方法不起作用,请在下面评论。