我正在尝试使用带有jQuery的ajax在Laravel中实现一个依赖的选择框。通过依赖,我的意思是单元格和部门表由许多关系到一个关系。选择部门后,其他选择框应由该部门的单元格填充。
我已将路由设置为
Route::post('/admin/routing_setting/get_cells/', 'AdminController@get_cells');
get_cells
函数是
$cells = AppCell::where('department_id', $request->department_id)->get();
return View('ajax.get_cell_from_dept')->with(compact('cells'));
脚本如下:
$(document).ready(function(){
$.ajaxSetup ({
cache: false,
headers: {
'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
}
});
// load() functions
var loadUrl = "{{ url('/admin/routing_setting/get_cells/') }}";
var htmldata = $("#dept_select").val();
var op = "";
$("#dept_select").on('change', function(e) {
/*$("#cell_select").load(loadUrl, {department_id: htmldata});*/
var div = $(this).parent();
var dept_id = $(this).val();
$.ajax({
type: 'post',
url: loadUrl,
data: {'department_id': dept_id },
success:function(data){
op = data;
div.find("#cell_select").append(op);
console.log("hii " + op);
}
});
});
});
#dept_select
是部门选择框的 ID。#cell_select
是单元格选择框的 ID。我没有包含 html 代码。如果需要,我会发布。
上面的代码在控制台中给了我错误,如下所示:
jquery-1.10.2.min.js:6 POST http://localhost/pms/public/admin/routing_setting/get_cells 500 (Internal Server Error)
我将代码从div.find("#cell_select").append(op);
更改为$("#cell_select").append(op);
。成功了。