2017-05-30 6 views
0

最初のドロップダウンで選択したそれぞれのエステートから2番目のドロップダウンに家を埋めようとしています。 2番目のドロップダウンで結果が得られません。 var_dump($estates->house_number);のような結果をダンプすると、結果はhouse number G3という意味になります。 AJAXDependent Drop Down AJAXを使用してcodeigniterを選択します

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

これは、次のとおりです:

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

} 
:これはPHPで

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

が、今、これはビュー

から<option class="text-uppercase" value="' . $estates->house_id . '"> ' . $estates->house_number . '</option>;で送信されていないこれはHTMLです

+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

あなたの 'data'はAjaxの値を取得していますか? – Shihas

関連する問題