简体   繁体   English

使用AJAX的从属下拉选择代码点火器

[英]Dependent Drop Down select codeigniter using AJAX

Im trying to get houses to be filled on the second dropdown from their respective estates selected in the first drop down. 我试图在第二个下拉列表中从第一个下拉列表中选择的相应房屋中填补房屋。 Im getting no results in the second dropdown. 在第二个下拉菜单中,我没有任何结果。 If i dump the results like var_dump($estates->house_number); 如果我转储类似var_dump($estates->house_number); i get house number G3 meaning there are some results. 我得到的house number G3表示有一些结果。 but now this is not being sent with the <option class="text-uppercase" value="' . $estates->house_id . '"> ' . $estates->house_number . '</option>; 但是现在不使用<option class="text-uppercase" value="' . $estates->house_id . '"> ' . $estates->house_number . '</option>; <option class="text-uppercase" value="' . $estates->house_id . '"> ' . $estates->house_number . '</option>; to the view 到视图

This is the HTML: 这是HTML:

<div class="col-sm-4 col-xs-12">
   <div class="form-group drop-custum">
       <select id="estate" name="estate" data-live-search="true" class="form-control show-tick" onchange="get_houses(this.value)">
          <option value="">-- Estate --</option>
          <?php
           $sql = $this->db->query("select * from estates ORDER BY estate_name asc");
           $result = $sql->result();
           foreach ($result as $estates):
          ?>
            <option class="text-uppercase" value="<?= $estates->estate_name?>"> <?= $estates->estate_name?></option>
         <?php endforeach; ?>
        </select>
    </div>
</div>
<div class="col-sm-4 col-xs-12">
    <div class="form-group drop-custum">
        <select name="house" data-live-search="true" id="house" class="form-control show-tick">
          <option value="">-- House --</option>
        </select>
    </div>
</div>

This is the AJAX: 这是AJAX:

function get_houses()
{
 $.ajax({
    url:"fill_houses/",
    type:"POST",
    data:'estate_name='+val,
    success:function(data)
    {
        $("#house").html(data);
        alert('success');
    }
 }); 
}

This is the PHP: 这是PHP:

public function fill_houses()
{
    $query = $this->db->query("select * from houses where estate_name='" . $this->input->post('estate_name', true) . "' order by house_number asc ");
    $result = $query->result();

    foreach ($result as $estates) {
        var_dump($estates->house_number);

        //dump returns house number G3, meaning results are there

        $rslt =  '<option class="text-uppercase" value="' . $estates->house_id . '"> ' . $estates->house_number . '</option>';
        return $rslt;
        //this return doestnt populate the view for <select name="house"  id="thishouse"></select>
    }

}

Check with this ajax function: 检查以下ajax函数:

function get_houses(val)
{
   $.ajax({
      url:"<?php echo base_url(); ?>fill_houses",
      type:"POST",
      dataType:"json",
      data:'estate_name='+val,
      success:function(data)
      {
         $("#house").html(data);
         alert('success');
      }
   });

}   

Controller: 控制器:

public function fill_houses()
{
$query = $this->db->query("select * from houses where estate_name='" . $this->input->post('estate_name', true) . "' order by house_number asc ");
$result = $query->result();

foreach ($result as $estates) {
    var_dump($estates->house_number);

    //dump returns house number G3, meaning results are there

    $rslt[] = '<option class="text-uppercase" value="'.$estates['house_id'].'">'.$estates['house_number'].'</option>';

    //this return doestnt populate the view for <select name="house"  id="thishouse"></select>
}
echo json_encode($rslt);

}

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM