通过下拉列表填充表格

时间:2019-10-10 10:21:05

标签: javascript ajax codeigniter activerecord

我正在尝试在多对多的sql表中获取数据(请参阅上载的图像),然后将其获取到视图表中(通过client_id获取user_id),问题是,当不再选择该下拉列表时,我添加了ajax脚本,并且该表未加载必要的信息。请帮助我解决这一问题。非常感谢你。

-查看表格和表格-

<select  id="client_id" name="client_id" class="form-control" >
   <option value="">Select Client</option>
   <?php foreach ($clientList as $value){ ?>
   <option data-client-id="<?=$value['id']?>" value="<?php echo $value['id'] ?>"><?php echo $value['account_name'] ?></option>
  <?php }?>
</select>

<table style="width: 100%" class="table">
   <thead><tr><th>No.</th><th>user name</th><th>sl_rate</th></tr></thead>
   <tbody id="table-details"></tbody>
</table>

--- AJAX ---

<script type="text/javascript">
$(document).ready(function(){
    $('#client_id').change(function(){ 
        var id=$(this).val();
        var base_url = '<?php echo base_url() ?>';
        var $sr = ($(".jdr1").length + 1);
        var rowid = Math.random();
        $.ajax({
            url: base_url + "client/getClientUser",
            method : "POST",
            data: {'client_id': client_id},
            async : true,
            dataType : "JSON",
            success: function(data){         
                var html = '';
                var i;
                for(i=0; i<data.length; i++){
                    html += '<tr class="jdr1" id="' + rowid + '">' +
                            '<td><span class="btn btn-sm btn-default">' + $sr + '</span><input type="hidden" name="count[]" value="'+Math.floor((Math.random() * 10000) + 1)+'"></td>' +
                            '<td><input type="text" id="user_id-' + $sr + '" name="user_id[]" value="" /></td>' +
                            '<td><input type="text" id="sl_rate-' + $sr + '" name="sl_rate[]" value="" /></td>' +
                            '</tr>'
                }
                $('#table-details').html(html);
                }
            });
            return false;
    });      
});

-控制器-

public function getClientUser(){
$client_id = $this->input->get('client_id');
$data = $this->ClientModel->getUserByClientId($client_id);
echo json_encode($data);}

-模型-

public function getUserByClientId($clientid){
   $this->db->select('client_user.id, client_user.user_id, users.givenname');
    $this->db->from('client_user');
    $this->db->join('users', 'users.id = client_user.client_id');
    $this->db->where('client_user.client_id', $clientid);
    $this->db->order_by('client_user.id');
    $query = $this->db->get();
    return $query->result_array();
}

View screenshot of the sql table

1 个答案:

答案 0 :(得分:0)

我认为client_id变量丢失了您正在传递数据。

data: {'client_id': client_id}