【发布时间】:2018-04-15 16:42:31
【问题描述】:
目前我正在尝试将创建表单传递给控制器。我有路由和 ajax 调用设置并与路由交谈。我的问题是,当我使用 ajax 调用时,标题的检查工具正确显示了我的表单值,但是当我进入控制器时,请求->输入不显示表单的任何值。
这是我的 ajax 调用
$(document).on("click", ".form-submit-btn", function() {
// Get the form id.
var formID = $(this).closest("form").attr("id");
var serializedForm = $(this).closest("form").serialize();
var substringEnd = formID.indexOf("-form");
var route = formID.substr(0, substringEnd).replace("-", "_");
$.ajaxSetup({
headers: {
'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
}
});
// Submit the form.
$.ajax({
method: "POST",
url: "/" + route,
data: {
serializedForm
},
success: function(data) {
alert(data);
}
});
});
这是我的控制器
// Create Role
public function create(Request $request)
{
// Get and validate request params
$role = $request->input('role_name');
$active = $request->input('role-active', false);
return $role;
}
这是我的路线
Route::post('/create_role', 'RoleController@create');
我是否遗漏了阻止 ajax 调用将值发送到控制器的内容
如果有帮助,这也是我的表格。
<form id="create-role-form" class="form">
{{ csrf_field() }}
<button class="pull-right right-close-btn">X</button>
<h1>Add Role</h1>
<hr />
<div class="form-group">
<label>Role Name</label>
<input type="text" name="role_name" class="form-control" />
</div>
<div class="form-group">
<input type="checkbox" name="role_active" value="true" checked /> Active
</div>
<div class="form-group">
<button class="btn btn-primary form-control form-submit-btn">Create</button>
</div>
【问题讨论】:
-
检查控制器中的 print_r($request->serializedForm) 并查看数据是否可用
标签: php jquery ajax laravel controller