如何使用一个删除按钮删除选中的项目

时间:2019-09-09 10:29:40

标签: javascript php laravel

我要创建一个删除按钮,以删除选中的项目。表示一个主按钮,用于删除所有选中的项目。我制作了一个主复选框,用于检查所有值。现在,我要创建一个主按钮,该按钮将删除选中的值。这是我的代码。我是Laravel的新手,请帮助我。对不起,我的英语不好。

@extends('footer')
@extends('header')

@section('body')
<!DOCTYPE html>
<html>
<head>
    <title>Retrieve data|Std view</title>
<link rel="stylesheet" type="text/css" href="{{ asset('public/css/style.css') }}">
<link rel="stylesheet" type="text/css" href="{{ asset('public/css/bootstrap.css') }}">
<script type="text/javascript" src="{{ asset('public/js/jQuery.js') }}"></script>
</head>
<body>

    @if(session()->has('success'))
    <div class="alert alert-success">
        <h3> {{ session()->get('success') }} </h3>
    </div>

    @endif 

<div class="container">
    <form action="" method="">
    <input type="hidden" name="_token" value="<?php echo csrf_token(); ?>">

    <h2 style="color: green">This Is View Form</h2>
    <a href = "insert" class="btn btn-primary">Add New</a>

//HERE IS MY MASTER DELETE BUTTON.
    <button type="submit" class="btn btn-danger"  >Delete</button><br><br>


    <table border="1" id="customers">
        <tr>
            <th>
//Here is my checkbox inside the loop.
    <input type="checkbox" id="master" onchange="checkall(this);"> All
            </th>
            <th>Name</th>
            <th>Email</th>
            <th>Update</th>
            <th>Delete</th>

        </tr>

        @foreach($data as $value)
        <tr>

            <td>
                <input type="checkbox" class="sub_chk_{{ $value->id }}"  value="{{ $value->id }}">
            </td>
            <td>{{ $value->name }}</td>
            <td>{{ $value->email }}</td>
<td><a href="edit/{{$value->id}}" class="btn btn-primary" >Edit</a></td>

//THIS DELETE BUTTON FOR SINGLE DELETE FUNCTION

<td><a href="delete/{{$value->id}}" onclick='ConfirmDelete()' class="btn btn-danger" >Delete</a></td>
        </tr>
        @endforeach
    </table>
    </form><br>

    {{ $data->links() }}

</div>  

</body>

</html>
@endsection

<script>

    function checkall(obj) {
        var selectedIds = [];
        if(obj.checked){
     $('input:checkbox').not(obj).prop('checked', 'checked');
     $("input:checkbox").each(function(){
        var $this = $(this);

    if($this.is(":checked")){
        selectedIds.push($this.attr("value"));
    console.log(selectedIds);
    }
     })
        }
        else{
     $('input:checkbox').prop('checked',false);
        }
 }

function ConfirmDelete()
{
  var x = confirm("Are you sure you want to delete?");
  if (x)
      return true;
  else
    event.preventDefault();
    return false;
}


</script>

1 个答案:

答案 0 :(得分:0)

首先获取选中复选框的ID数组,然后在控制器中使用这些ID删除数据。为此,首先将名称输入框(在foreach循环内),就像这样,

<input type="checkbox" name="ids[]" class="sub_chk_{{ $value->id }}"  value="{{ $value->id }}">

然后为表单操作创建新路线。 然后在该控制器函数中编写逻辑以删除数据。喜欢,

function delete(Request $request){
     Model::whereIn('id',$request['ids'])->delete();
}

就这样。