【发布时间】:2020-02-12 16:26:58
【问题描述】:
我正在用 Laravel 做一个项目。
当我更改以下 select 元素的选定选项时,我应该将选定的值插入 mysql 数据库,以从服务器检索有关选定 id 的所有数据(例如用户名)。
这是选择元素(adminArea.blade.php):
<select name="employees" onchange="fillEmployeeData(this)" class="form-control col-sm-6" id="employees">
<option value="0"></option>
@foreach ($users as $user)
<option value="{{ $user->id }}">{{ $user->surname . ' ' . $user->name }}</option>
@endforeach
</select>
这是被调用的函数 (adminArea.blade.php)::
function fillEmployeeData(emp_id) {
var emp_selected = emp_id.value;
$.ajax({
type: "POST",
url: "{{ route('adminAreaPostEmployee') }}",
data: 'emp_selected=' + emp_selected,
success: function (data) {
var emp_data = JSON.parse(data);
alert(emp_data);
}
});
};
这些是我的路线(web.php):
Route::get('/adminarea', 'AdminAreaController@index')->name('adminArea');
Route::post('/adminarea/postemployee', 'AdminAreaController@post_employee')->name('adminAreaPostEmployee');
这些是我的控制器方法(adminAreaController.php):
public function post_employee(Request $request)
{
$select = $request->get('emp_selected');
$user = User::where('id', $select);
echo $user;
}
public function index()
{
$operations = Operation::all();
$users = User::all()->sortBy('surname');
$rooms = Room::all();
return view('adminArea', compact('users', 'rooms', 'operations'));
}
但是,当我更改所选值时,什么也没有发生...如果我转到开发人员工具,我会看到以下错误:
加载资源失败:服务器响应状态为 419 (未知状态)。 Symfony\Component\HttpKernel\Exception\MethodNotAllowedHttpException 此路由不支持 GET 方法。支持的方法: 发布。
我没有看到任何警报。有人可以帮助我吗?
【问题讨论】:
-
adminAreaController是错字吗?因为它应该是AdminAreaController -
我无法重现,您使用的是哪个版本的 Laravel 和 JQuery?
-
也尝试清除您的路线
php artisan route:clear -
是的,这是一个错字!
标签: javascript php ajax laravel request