在更新时使用Ajax,jQuery和Codeigniter基于另一个Dropdown填充Dropdown

时间:2017-02-15 19:07:33

标签: javascript php jquery html codeigniter

我创建了一个下拉列表,填充了另一个下拉列表。

我在我的应用程序中创建了一个更新模式,我希望下拉列表的选定值是从数据库中获取的名称。它显示了名称,但问题是它没有显示应该包含的其他名称。

(请注意,名称显示取决于第一个下拉列表)

这是我的模特

function get_agents($campaign_id)
{
    $campaign_id1 = mysqli_real_escape_string($this->db->conn_id,trim($campaign_id));
    $query = $this->db->query("SELECT tbl_employee.emp_id, CONCAT(tbl_applicant.fname, ' ', tbl_applicant.lname) AS fullname FROM tbl_applicant INNER JOIN tbl_employee ON tbl_employee.apid=tbl_applicant.apid INNER JOIN tbl_account ON tbl_employee.acc_id=tbl_account.acc_id WHERE tbl_account.acc_id='".$campaign_id1."' ORDER BY tbl_applicant.fname ASC");
    return $query->result();
}

这是我的控制器

public function getAgents()
{
   $campaign_id = $this->input->post('campaign_id');
   $data = $this->KudosModel->get_agents($campaign_id);
   echo "<option value=''>-- Select Ambassador Name --</option>";
   foreach($data as $a)
   {
       echo "<option value='".$a->emp_id."'>".$a->fullname."</option>";
   }
}

这是我的观点

<div class="form-group" style="height: auto; overflow: auto;">
<label class="col-sm-3 control-label float-left">Ambassador Name</label>
<div class="col-sm-9">
    <select class="form-control" id="agentNames<?php echo $val->kudos_id; ?>" required="true" data-trigger="change" value="<?php echo $val->ambassador; ?>">
        <option selected="" value="">-- Select Ambassador Name --</option>
        <option selected="selected" value=""><?php echo $val->ambassador;?></option>
        <?php 
        foreach($name2 as $row)
        {
            if($val->campaign==$row->acc_name)
                echo '<'; if($val->ambassador==$row->fullname){
                    echo 'selected=selected';
                }echo'option value="'.$row->emp_id.'">'.$row->fullname.'</option>';
            }
        ?>
    </select>
</div>

这是我的JQuery

$('#addCampaign<?php echo $val->kudos_id; ?>').on('change', function(){
        $.ajax({
            type : 'POST',
            data : 'campaign_id='+ $('#addCampaign<?php echo $val->kudos_id; ?>').val(),
            url : "<?php echo base_url(); ?>index.php/Kudos/getAgents/",
            success : function(data){
                //data returns your name, iterate through it and add the name to another select
                $('#agentNames<?php echo $val->kudos_id; ?>').html(data);
            }
        });
    });

0 个答案:

没有答案