我在我的应用程序中使用code.jquery.com/jquery-3.5.0.js,并尝试在不重新加载的情况下发布数据。它可以在没有ajax的情况下发布,但不能使用ajax脚本。
控制器:
public function index()
{
$tasks = Task::orderBy('id', 'desc')->paginate(9);
return view('empmodel', compact('tasks'));
}
public function store(Request $request)
{
$tasks = new Task;
$tasks->t_title = $request->input('t_title');
$tasks->project_id = $request->input('project_id');
$tasks->save();
}Ajax:
<script type="text/javascript">
$(document).ready(function () {
$('#addform').on('submit', function(e) {
e.preventDefault();
$.ajax({
type: "POST",
url: "/addstudent",
data: $('#addform').serialize(),
success: function (response) {
console.log(response)
$('#studentaddmodal').modal('hide')
alert("data saved");
},
error: function(error) {
console.log(error)
alert("Data not saved");
}
});
});
});
</script>
</body>路由:
Route::get('/tasks', 'projects\ProjectpController@index');
Route::post('/addstudent', 'projects\ProjectpController@store');当我用project_id在字段中填充整数时,警报显示“数据已保存”,但它没有出现在数据库中。如果我在project_id字段中输入文本,则警报应该是"data not saved“。不缺少CSRF令牌。我正在使用常规的bootstrap Modal。
发布于 2020-05-05 02:47:03
在控制器中使用parse_str解析从AJAX发送的字符串
将ajax的数据定义更改为
data: {
formData: $('#addform').serialize()
}在你的Controller方法中
public function store(Request $request)
{
parse_str($request->formData, $output);
$tasks = new Task;
$tasks->t_title = $output['t_title'];
$tasks->project_id = $output['project_id'];
$tasks->save();
}https://stackoverflow.com/questions/61598067
复制相似问题