2017-06-19 168 views
1

我有我提供的foreach语句并在选择下拉菜单我需要它打开另一个下拉菜单指定的项目下拉菜单打开另一个下拉 - 笨

下拉1 - 分类(全完成)

在点击类别的

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

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

也希望以前做过类似事情的链接。

+0

这[一](https://github.com/eboominathan/Dependent-Dropdown-in-Codeigniter-3.0.3)如何? – Ukasyah

+0

或者这个。 (他没有提出同样的问题,但他提供的示例代码在他的问题中应该达到同样的目的。)https://stackoverflow.com/questions/44558856/how-to-make-tree-dropdown-in-codeigniter/44573420 #44573420 – Joe

回答

0

这里是我用来创建ajax驱动多个下拉菜单的代码段代码。其实我有2种方法为了简单起见,我发布了最简单的方法,即没有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; 
     } 

我跳过型号代码。如果这种方法不适合你下面的评论。

相关问题