2016-03-24 7 views
0

こんにちは。状態IDをデータベースに挿入した後、状態と都市をドロップダウンから選択しているときに、dynamic drop downを使用しています。 idのダイナミックドロップダウンは、laravelを使用して状態名を挿入します。5

public function state() 
{ 
    $states=DB::table('states')->get(); 
    return View::make('index')->with('states',$states); 
} 

public function city() 
{ 
    $state_id=Input::get('state_id'); 
    $cities=DB::table('towns')->where('state_id','=', $state_id)->get(); 
    return Response::json($cities); 
} 

この:

<form method="POST" action="{{URL::to('test/insert')}}"> 
    <input type="hidden" name="_token" value="{{csrf_token()}}"/> 
    <select name="state" id="state" class="form-control input-sm"> 
     @foreach($states $state) 
      <option value="{{$state->id}}">{{$state->name}}</option> 
     @endforeach 
    </select> 

    <select id="city" class="form-control input-sm" name="city"> 
     <option value=""></option> 
    </select> 
    <input type="submit" name="submit"> 
</form> 

<script> 
    $('#state').on('change',function(e){ 
     console.log(e); 
     var state_id = e.target.value; 
     $.get('city?state_id=' + state_id, function(data){ 
     $('#city').empty(); 
     $.each(data,function(index,subcatObj){ 
      $('#city').append('<option value="'+subcatObj.name+'">'+subcatObj.name+'</option>'); 
     }); 
    }); 
}); 
</script> 

これは私のコントローラである:私は働いていないダウン(option value=id)ダイナミックドロップからIDを削除していた場合...これは私のブレードのテンプレートである私に

を提案してくださいあなたのインサート州と都市のコントローラです:

public function insert() { 
    $s_name=array('state' => Input::get('state'), 
        'city' => Input::get('city')); 
    DB::table('test')->insert($s_name); 
} 

答えて

0

まず、 selectにその後

@foreach($states $state) 
    <option value="{{$state->name}}" data-id="{{$state->id}}">{{$state->name}}</option> 
@endforeach 

、(つまりアヤックスから都市を取得するために、新しいdata-id属性を拾う)にあなたのJavaScript関数を更新します:)データ-id属性を追加し

$('#state').on('change',function(e){ 
    console.log(e); 
    var state_id = $(this).attr('data-id'); 
    $.get('city?state_id=' + state_id, function(data){ 
    $('#city').empty(); 
     $.each(data,function(index,subcatObj){ 
      $('#city').append('<option value="'+subcatObj.name+'">'+subcatObj.name+'</option>'); 
     }); 
    }); 
}); 

、フォームを送信IDではなく国家の名前を付けるべきです。

関連する問題