我正在使用laravel 4..2并拥有像图像一样的html onchange功能。并将错误显示为第二张图片。
此AJAX请求不适用于create方法,但它适用于laravel资源控制器的索引方法。
它的发生可能是因为laravel控制器。任何人都可以通过解释这个帮助我。
// Routes.php
Route::resource('index', 'IndexController');
Route::get('ajax-subcat', function(){
$cat_id = Input::get('cat_id');
$subcategories = Subcategory::where('parent_ID', '=', $cat_id)->get();
return Response::json($subcategories);
});
// AJAX
<script>
$('#category').on('change', function(e){
console.log(e);
var cat_id = e.target.value;
// AJAX
$.get('ajax-subcat?cat_id=' + cat_id, function(data){
$('#subcategory').empty();
$.each(data, function(index, subcatObj){
$('#subcategory').append('<option value="'+subcatObj.id+'">'+subcatObj.name+'</option>')
});
// console.log(data);
});
});
</script>
答案 0 :(得分:2)
自从你使用Laravel后,让我们开始充分利用laravel:
在Routes.php中,请创建:
Route::get('ajax-subcat/{id}', 'SOME_CONTROLLER_NAME@SOME_METHOD_NAME');
“{id}”告诉laravel存储变量中“/”之后的内容的详细信息,并将其传递给指定的控制器方法。没有什么比在URL中拥有ajax-subcat = cars更难看了。另外,请使用正确的名称替换SOME_METHOD_NAME和SOME_CONTROLLER_NAME。
在您的控制器中,请添加:
public function THAT_METHOD_NAME_FROM_THE_ROUTE($id){
$subcategories = Subcategory::where('parent_ID', '=', $id)->get();
return Response::json($subcategories);
}
在你的Ajax脚本中
<script>
$('#category').on('change', function(e){
console.log(e);
var cat_id = e.target.value;
// AJAX
$.get('ajax-subcat/' + cat_id, function(data){
$('#subcategory').empty();
$.each(data, function(index, subcatObj){
$('#subcategory').append('<option value="'+subcatObj.id+'">'+subcatObj.name+'</option>')
});
// console.log(data);
});
});
</script>