Post Ajax 和 Bootstrap 模态 Laravel
Post with Ajax and Bootstrap Modal in Laravel
我正在我的应用程序中使用 code.jquery.com/jquery-3.5.0.js
,并尝试 post 数据而不重新加载。
它 post 没有 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
在字段中填写整数时,警报显示 "data saved",但它没有出现在数据库中。
如果我将文本放在 project_id
字段中,那么警报应该是 "data not saved"。
CSRF 令牌没有丢失。我正在使用常规 bootstrap 模态。
使用 parse_str
解析您从控制器中的 AJAX 发送的字符串
将 ajax 的数据定义更改为
data: {
formData: $('#addform').serialize()
}
并在您的控制器方法中
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();
}
类似问题:How do I PHP-unserialize a jQuery-serialized form?
阅读:
我正在我的应用程序中使用 code.jquery.com/jquery-3.5.0.js
,并尝试 post 数据而不重新加载。
它 post 没有 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
在字段中填写整数时,警报显示 "data saved",但它没有出现在数据库中。
如果我将文本放在 project_id
字段中,那么警报应该是 "data not saved"。
CSRF 令牌没有丢失。我正在使用常规 bootstrap 模态。
使用 parse_str
将 ajax 的数据定义更改为
data: {
formData: $('#addform').serialize()
}
并在您的控制器方法中
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();
}
类似问题:How do I PHP-unserialize a jQuery-serialized form?
阅读: