2017-06-19 100 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; 
     } 

我跳過型號代碼。如果這種方法不適合你下面的評論。

相關問題