我正在尝试将一个jquery帖子从一个JS文件发布到一个laravel路由,但看起来它不起作用,我不知道为什么。
我的主要目标是:从已选中复选框的表中获取所有ID,并在SQL上更改其列值。
所以,这是我的JS函数:
function concludeAll() {
var arrayIds = [];
$('.checkbox1').each(function() {
var $this = $(this);
var $id = $this.attr('id');
if ($this.is(":checked")) {
arrayIds.push($id);
}
});
var json = {
"ids": arrayIds
};
$.post('http://localhost:8000/controle/pending/concludeAll',
{
'_token': $('meta[name=csrf-token]').attr('content'),
ids: arrayIds
})
.error(
)
.success(
);
}
这是我的路线:
Route::group(['prefix' => '/controle'], function() {
Route::post('/pending/concludeAll/', function() {
$input = Input::only('ids');
$input = $input['ids'];
foreach($input as $id) {
$student = new App\Aluno();
$student = $student->where('id', '=', $id)->first();
$student->pending = '0';
$student->save();
}
}); };
因此,如果我检查表格上的几行并点击调用该功能的按钮,则我的控制台上没有任何反应。在网络上>标题>表单数据我看到令牌和ID,如下所示:
_token:fNWunwF8yDLSycrkBE684wgQcyK9dP8wbR7VgLjC IDS []:23 IDS []:20
在预览中,我看到的是完全相同的页面。 在回复时,我看到了页面的HTML。
我也试了一个dd($ input);在路线上,但没有任何不同发生..
尝试了php工匠路线:清楚,没有任何不同的事情发生。
如果我更改了http://localhost:8000/controle/pending/concludeAll2的网址名称,则不会返回任何错误,这会让我发疯...
如何将这个帖子调用到该路线?谢谢!
答案 0 :(得分:1)
尝试将路线更改为
Route::post('/controle/pending/concludeAll', function() {
$input = Input::only('ids');
$input = $input['ids'];
foreach($input as $id) {
$student = new App\Aluno();
$student = $student->where('id', '=', $id)->first();
$student->pending = '0';
$student->save();
}
});
并在JS函数中:
function concludeAll() {
var arrayIds = [];
$('.checkbox1').each(function() {
var $this = $(this);
var $id = $this.attr('id');
if ($this.is(":checked")) {
arrayIds.push($id);
}
});
arrayIds=JSON.stringify(arrayIds);
var json = {
"ids": arrayIds
};
$.post('http://localhost:8000/controle/pending/concludeAll',
{
'_token': $('meta[name=csrf-token]').attr('content'),
ids: arrayIds
})
.error(
)
.success(
);
}