在Laravel 5.4中使用Checkbox进行多次删除

时间:2017-05-05 05:11:13

标签: checkbox laravel-5.4

我对Laravel很新。我正在创建一个带有数据分页的项目。我成功地完成了CRUD工作(感谢教程),但我仍然知道如何删除使用复选框选择的多行。我试图四处寻找,但我找不到一个非常可靠的答案。我只使用Javascript找到了这个示例,但我在JS脚本将变量传递给我的控制器的部分存货。这是我的问题,我希望有人可以帮助我。抱歉我的英语不好。

Blade Page
                        @foreach ($it_equipments as $key => $d)
                    <tr>
                        <td><input type="checkbox" class="checkitem" value="{{ $d->id }}"></td>
                        <td>{{ $d->id }}</td>
                        <td>{{ $d->article }}</td>
                        <td>{{ $d->date_acquired }}</td>
                        <td>{{ $d->unit_measure }}</td>
                        <td>{{ $d->unit_value }}</td>
                        <td>{{ $d->onhand_qty }}</td>
                        <td>{{ $d->tot_value }}</td>
                        <td>
                             <div class="btn-group">
                              <button type="button" class="btn btn-danger btn-del">Remove</button>
                                <button type="button" class="btn btn-info">View</button>
                                <button type="button" class="btn btn-info dropdown-toggle" data-toggle="dropdown">
                                <span class="caret"></span>
                                <span class="sr-only">Toggle Dropdown</span>
                                </button>
                                    <ul class="dropdown-menu" role="menu" style="padding:5px 5px 5px 5px;">
                                        <li><b>Balance/ Card Quantity:</b> {{ $d->bal_card_qty }}</li>
                                        <li><b>Drop Quantity:</b> {{ $d->drop_qty }}</li>
                                        <li><b>Drop Value:</b> {{ $d->drop_value }}</li>
                                        <li><b>Remarks:</b> {{ $d->remarks }}</li>
                                    </ul>
                             </div>
                        </td>
                        <td>
                        <div class="btn-group">
                                <button type="button" class="glyphicon glyphicon-eye-open btn btn-success">Action</button>
                                <button type="button" class="btn btn-successs dropdown-toggle" data-toggle="dropdown">
                                <span class="caret"></span>
                                <span class="sr-only">Toggle Dropdown</span>
                                </button>
                                    <ul class="dropdown-menu" role="menu">

                                    <li><a href="{{ url('getEdit_inv',array($d->id)) }}">Edit</a></li>
                                    <li><a href="{{ url('postDelete_inv',[$d->id]) }}"  onclick="return confirm('Are you sure to delete this inventory entitled: {{ $d->article }} ?')">Delete</a></li>
                                    <li><a href="{{ url('postDelete_inv_selected',[$d->id]) }}"  onclick="return confirm('Are you sure to delete all selected rows?')">Delete Selected</a></li>
                                    </ul>
                             </div>
                        </td>
                    </tr>
                    @endforeach

脚本(我无法找到将其连接到控制器的位置或方式)

 <script>
$('#delsel').click(function()
{
    var id = $('.checkitem:checked').map(function()
    {
        return $(this).val()
    })
    .get().join(' ')
    $.post('help.php', {id: id}, function(data))
    {
        viewdata()
    })
})
</script>

`路由器

Route:: `get('/postDelete_inv_selected/{id}','InvController@postDelete_inv_selected');`

1 个答案:

答案 0 :(得分:0)

第一个问题 - 在您的Route.../postDelete_inv_selected/{id}但是在您的JS代码中,您从不使用此路由,而是使用help.php ...

你应该使用这样的东西(我是从头做的 - 没有经过测试)

Route::get('/postDelete_inv_selected', 'InvController@postDelete_inv_selected');

我在路由结束时删除了“id”参数(因为js $.post方法在请求正文中发送此参数,而不是在链接中)。读取控制器内的id参数(使用request('id'))。在JS中你应该使用这样的东西(可能会添加一些前缀 - 这取决于你的路由并最终CORS):

$.post('postDelete_inv_selected',...

详细了解laravel routing

我还建议将名称从'id'更改为'ids'因为它将包含许多id - 它最好不要将它们连接成一个字符串但是作为json数组发送