私はLaravelを初めて使用しています。最初のドロップダウンボックスで選択された内容に応じて2番目のドロップダウンボックスが変更される動的なドロップダウンボックスを作成する方法を学習しようとしています。ここでAJAXファイルを使用したLaravelルート
は私のブレードファイル内の自分のフォームコードです:ここで
{!! Form::open(array('url'=>'', 'files'=>true)) !!}
<label>Select a Cinema:</label><br>
<select id = "cinema" name = "cinema">
@foreach ($cinemas as $cinema)
<option value="{{$cinema->id}}">{{$cinema->name}}</option>
@endforeach
</select>
<br>
<label>Select a session:</label>
<br>
<select id = "sesh" name = "sesh">
<option value=""></option>
</select>
<br>
<label>Number of tickets:</label><br>
<select id = "count" name ="count">
@for ($i = 1; $i < 10; $i++)
<option value="{{$i}}">{{$i}}</option>
@endfor
</select>
<br><br>
<input type="submit" value="Submit">
{!!Form::close()!!}
は(もブレードファイル内が、<script>
タグの私のAJAXコードです:
<script>
$('#cinema').on('change', function(e){
console.log(e)
window.alert("On Change");
var cinema_id = e.target.value;
//ajax
$.get('/ajax-subcat?cinema_id=' + cinema_id, function(data){
//success data
console.log(data);
window.alert("On Success");
$('#sesh').empty();
$.each(data, function(index, subcatObj){
$('#sesh').append('<option value=""' + subcatObj.id +'">'+subcatObj.name+'</option>');
});
});
});
</script>
そして最後に、ここでは私のルートであります:
Route::get('/ajax-subcat', function(){
$cinema_id = Input::get('cinema_id');
$sessions = Session::where('cinema_id', '=', $cinema_id)->get();
return Response::json($sessions);
});
このコードではデータが生成されず、404エラーが表示されます。
私はAJAXコードがアラートを介して「変更」機能の中に入ることを確認しましたが、2番目のアラートは表示されません。私の限られた理解では、ルートファイルに問題があるように感じます。ルートファイルがデータを返すように、AJAXの次の関数が実行されているはずです。
私がルートコードで理解できないことは、Input :: get( 'cinema_id')が行っていることです。私はそれがドロップダウンボックスでユーザーが入力したものをつかんでいると思いますか?
は、どのルートグループ内に位置し、あなたのルート "/ AJAX-SUBCAT" となっていますか? – hamedmehryar
私が知っているわけではありませんが、あなたはどういうことを本当に申し訳ありませんか?これを置くことを意味しますか?Route :: get( '/ ajax-subcat'); Route :: groupセクションの内側にありますか? –
はい、あなたのルートはRoute :: group()の中に置かれていますか? – hamedmehryar