使用Laravel 5.4中的Javascript从数据库中删除选定的复选框?
我再次来这里寻求帮助。我的页面视图中有分页页面结果。当我使用复选框在结果列表中选择2行或更多行时,我希望使用分页外的按钮将它们从列表以及数据库中删除。我发现一个JS脚本可以将它们从列表中删除,但无法将其从数据库中删除。我可以想象我想要发生什么,但我不太熟悉JS脚本,我确实使用Laravel 5.4中的Javascript从数据库中删除选定的复选框?,javascript,laravel,checkbox,Javascript,Laravel,Checkbox,我再次来这里寻求帮助。我的页面视图中有分页页面结果。当我使用复选框在结果列表中选择2行或更多行时,我希望使用分页外的按钮将它们从列表以及数据库中删除。我发现一个JS脚本可以将它们从列表中删除,但无法将其从数据库中删除。我可以想象我想要发生什么,但我不太熟悉JS脚本,我确实在这里输入代码不知道如何在其中包含一个脚本,该脚本可以删除选定的(ID)数据行数组并将其从数据库中删除。请有人能评估我的代码,并教我在哪里和如何这样做。我在这儿真是累坏了。除非我能解决我的大问题,否则我无法继续 这是JS脚本。。
在这里输入代码
不知道如何在其中包含一个脚本,该脚本可以删除选定的(ID)数据行数组并将其从数据库中删除。请有人能评估我的代码,并教我在哪里和如何这样做。我在这儿真是累坏了。除非我能解决我的大问题,否则我无法继续
这是JS脚本。。。它工作得很好
<script>
function delBoxes(){
var e = document.getElementsByName("chkrow");
var message = 'Are you sure you want to delete?';
var row_list = {length: 0};
for (var i = 0; i < e.length; i++) {
var c_box = e[i];
if (c_box.checked == true) {
row_list.length++;
row_list[i] = {};
row_list[i].row = c_box.parentNode.parentNode;
row_list[i].tb = row_list[i].row.parentNode;
}
}
if (row_list.length > 0 && window.confirm(message)) {
for (i in row_list) {
if (i == 'length') {
continue;
}
var r = row_list[i];
r.tb.removeChild(r.row);
}
} else if (row_list.length == 0) {
alert('Please select row to delete.');
}
}
</script>
函数delBoxes(){
var e=document.getElementsByName(“chkrow”);
var message='您确定要删除吗?';
var row_list={length:0};
对于(变量i=0;i0&&window.confirm(消息)){
对于(第_行列表中的i){
如果(i='length'){
继续;
}
var r=行列表[i];
r、 肺结核移除儿童(r.row);
}
}else if(row_list.length==0){
警报('请选择要删除的行');
}
}
这是Href(按钮状)
这是我的路线:路线::获取('/postDelete\u inv\u selected','InvController@postDelete_inv_selected');
和我的控制器(在我可以获得所选行的数组之前不固定)
已选择公共功能删除后库存(请求$请求)
{
///在此处删除代码/重定向回分页结果
}
更新了以下代码:
我不确定我是否正确理解了您的代码,因为您没有包含代码的HTML,但从外观上看,应该删除您已经提到的HTML中的行
对于DB部分,我建议您收集要在代码的循环部分中删除的项目的id
,使其看起来像这样:
// array declaration
var id_to_delete = [];
for (var i = 0; i < e.length; i++) {
var c_box = e[i];
if (c_box.checked == true) {
row_list.length++;
row_list[i] = {};
row_list[i].row = c_box.parentNode.parentNode;
row_list[i].tb = row_list[i].row.parentNode;
// collect the id of the rows to delete
id_to_delete.push(c_box.value);
}
}
// send a request to server
var xhttp = new XMLHttpRequest();
xhttp.open("POST", "/postDelete_inv_selected", true);
xhttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
xhttp.send( "id_to_delete=" + JSON.stringify(id_to_delete) );
//数组声明
var id_to_delete=[];
对于(变量i=0;i
可能带有htmlid
或data-
属性(即
)
然后通过AJAX请求在路由上将其作为字符串化json或数组传递,然后在控制器上处理删除操作
此外,最好将路线替换为post
,而不是get
注意:我还没有测试这些行,但是我很确定你已经知道从哪里开始了。这是我的HTML表。请告诉我如何在JS foreach中收集它们($key=>d){{{$d->id}{$d->article}{{$d->date{$d->unit measure}{{$d->unit measure}{$d->unit value}}{{$d->onhand_quantity}{{$d->tot_value}}endforeach无法在foreach中插入@这就是我删除字符的原因,请从代码中忽略它,您已经在复选框的值上设置了它,只需获取并收集它(c_box.value
).c_box.value;$.ajax({type:“POST”,数据:{c_box:c_box},url:“postDelete_inv_selected”,});更新了上面的代码。我刚刚意识到我之前发送了一个指向使用JQuery的示例的链接。
// array declaration
var id_to_delete = [];
for (var i = 0; i < e.length; i++) {
var c_box = e[i];
if (c_box.checked == true) {
row_list.length++;
row_list[i] = {};
row_list[i].row = c_box.parentNode.parentNode;
row_list[i].tb = row_list[i].row.parentNode;
// collect the id of the rows to delete
id_to_delete.push(c_box.value);
}
}
// send a request to server
var xhttp = new XMLHttpRequest();
xhttp.open("POST", "/postDelete_inv_selected", true);
xhttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
xhttp.send( "id_to_delete=" + JSON.stringify(id_to_delete) );