2017-05-30 37 views
0

我试图让房屋被填充在第一个下拉列表中选择的第二个下拉列表中。我在第二个下拉列表中找不到结果。如果我倾倒结果像var_dump($estates->house_number);我得到house number G3这意味着有一些结果。但现在,这是不与<option class="text-uppercase" value="' . $estates->house_id . '"> ' . $estates->house_number . '</option>;到视图依赖下拉选择使用AJAX的codeigniter

发送这是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> 

这是AJAX:

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

这是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> 
    } 

} 
+0

检查更新的答案。 – Shihas

回答

0

用此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'); 
     } 
    }); 

} 

控制器:

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); 

} 
+0

根本不起作用,使用'<?php echo base_url(); ?> fill_houses' – Lexie

+0

你的'数据'在ajax获得所需的价值? – Shihas