2017-05-28 11 views
0

イム家は、最初のドロップダウンで選択し、それぞれの農園から2番目のドロップダウンに満たされるために取得しようとしています。 2番目のドロップダウンで結果が得られません。依存のドロップダウン選択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 = "select * from houses where estate_name='" . $_POST["estate_name"] . "' order by house_number asc "; 
    $result = $query->result(); 
    foreach ($result as $estates): 
     '<option class="text-uppercase" value="'.$estates->house_id.'"> '.$estates->house_number.'</option>'; 
    endforeach; 
} 
+0

あなたは 'fill_houses'で' echo'を忘れてしまったので、 –

+1

'$ query'は文字列ですが、' result'メソッドを呼び出すことはできません。 – PeterMader

+0

jsの 'get_houses'は' val'変数について何も知らない。 –

答えて

0

あなたが戻っPHP関数fill_houses()の値を返す必要があります。

public function fill_houses() 
{ 

    $query = $this->db->query("select * from houses where estate_name='" . $_POST["estate_name"] . "' order by house_number asc "); 
    $result = $query->result(); 
    foreach ($result as $estates): 
     return '<option class="text-uppercase" value="'.$estates->house_id.'"> '.$estates->house_number.'</option>'; 
    endforeach; 
} 

javascript ajax関数get_houses()でも変数を取得する必要があります。と編集のカップル。

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

} 
+0

おかげで@AdhershMNair ...それはあなたがようこそ@Lexie – Lexie

+0

を働きました クラス=「フォーム・コントロール・ショーティック」> ' – AdhershMNair

+0

heyy、私は再び、なぜそれが '