jquery邮件调用laravel路由不工作

时间:2017-10-10 12:45:36

标签: javascript php jquery laravel post

我正在尝试将一个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的网址名称,则不会返回任何错误,这会让我发疯...

如何将这个帖子调用到该路线?谢谢!

1 个答案:

答案 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(

             );     
    }