2017-04-06 172 views
1

我想在部门之后的下拉框中选择一个部门后填入whoom-to-meet下拉框,但是当我点击部门列表时,所有部门都会显示,但是当我选择一个部门,该部门的相关雇员没有出现在whoom-to-meet下拉列表中。下面是我的两张桌子。 部门表根据第一个下拉列表填充一个下拉列表

+----+-----------+ 
| id | dept_name | 
+----+-----------+ 
| 2 | hr  | 
+----+---------- + 

user_master表

+----+-------------+-----------+----------+ 
| id | emp_name | dept_id | type | 
+----+-------------+-----------+----------+ 
| 1 | dipti  |  2  | employee | 
+ ---+-------------+-----------+----------+ 

我控制器

public function create_pass() { 
    $pageid = 1; 
    $data['hh'] = $this->admin_model->get_dept(); 
    $this->load->view('header'); 
    $this->load->view('sidebar'); 
    $this->load->view('createpass', $data); 
    $this->load->view('footer'); 
} 

public function select_item_by_dept() { 
    if ($this->session->userdata('admin_logged_in')) { 
     $category_id = $this->input->post('category_id'); 
     $data['result'] = $this->admin_model->select_item_by_cat($category_id); 

     $HTML = "";    
     foreach ($data['result'] as $list) { 
      $HTML.="<option value='" . $list['dept_id'] . "'>" . $list['emp_name'] . "</option>"; 
     }   
     echo $HTML; 
    } else { 
     $this->load->view('login'); 
    } 
} 

我的模型

function select_item_by_cat($category_id) { 
    $this->db->where('dept_id', '$category_id'); 
    $query = $this->db->get('user_master'); 
    return $query->result_array(); 
} 
function get_dept() { 
    $this->db->select("*"); 
    $this->db->from('department'); 
    $query = $this->db->get(); 
    return $query->result_array(); 
} 

我看来

<div class="form-group"> 
    <label for="inputPassword3" class="col-sm-3 control-label">Department to go </label> 
    <div class="col-sm-3"> 
    <select class="form-control select2" name="dptgo" id="dptogo" onchange="change_category(this.options[this.selectedIndex].value)" style="width: 100%;"> 
     <option selected="selected">Select</option>              
     <?php foreach($hh as $datas) 
     { ?> 
     <option value="<?php echo $datas['id']; ?>"><?php echo $datas['dept_name']; ?></option> 
<?php } ?> 
    </select> 
    <div class="text-danger"><?php echo form_error('dptgo'); ?></div> 
    </div> 
    <label for="inputPassword3" class="col-sm-2 control-label">Whom to Meet</label> 
    <div class="col-sm-4"> 
    <select class="form-control select2" id="whomtmt" name="wtomeet" style="width: 100%;"> 
     <option selected="selected">Select</option> 
     <option></option> 
    </select> 
    </div> 
</div> 

我的jQuery

<script> 
    function change_category(category_id) { 
    if (category_id == "Select") { 
     $("#whomtmt").html("<option>Select</option>"); 
     $("#whomtmt").trigger("chosen:updated"); 
     $("#whomtmt").trigger("liszt:updated"); 
    } else { 
     loadData(category_id); 
    } 
    } 
    function loadData(category_id) { 
    var dataString = 'category_id=' + category_id; 
    $.ajax({ 
     type: "POST", 
     url: "<?php echo site_url(); ?>/admin/select_item_by_dept", 
     data: dataString, 
     cache: false, 
     success: function (result) { 
     $("#whomtmt").html("<option>Select</option>"); 
     $("#whomtmt").append(result); 
     $("#whomtmt").trigger("chosen:updated"); 
     $("#whomtmt").trigger("liszt:updated"); 
     } 
    }); 
    } 
</script> 

回答

1

在你的模型,在select_item_by_cat功能

这是错误的$this->db->where('dept_id', '$category_id');

查询执行这样

SELECT * FROM `user_master` WHERE `dept_id` = '$category_id' 

所以将其更改为

$this->db->where('dept_id', $category_id); 

,并尝试它可以帮助你:)

+0

你可以检查你的最后一个查询y放置这个echo $ this-> db-> last_query();出口();在返回之前$ query-> result_array();在您的select_item_by_cat() – Nobita

+0

后更改'$ category_id'为$ category_id它工作正常,感谢您的帮助。 – dipti

相关问题