我对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');`
答案 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数组发送