【问题标题】:Laravel - proplem about creating "delete" button and display confirmationLaravel - 关于创建“删除”按钮并显示确认的问题
【发布时间】:2018-03-01 04:44:08
【问题描述】:

我有 index.blade.php 作为:

@extends('backend.layouts.app')
@section('title')
Danh sách sinh viên
@endsection
@section('content')
@if(session()->has('status'))
<div class="callout callout-info">
     {{ session('status') }}
    </div>
@endif
<div class="box">
            <div class="box-header">
               {{csrf_field()}}
              <h3 class="box-title">Danh sách sinh viên</h3> <br>
              <a href="{{route('sinhvien.create')}}"><i class="fa fa-fw fa-user-plus"></i> Bấm vào đây để thêm dữ liệu </a>
              <div class="box-tools">
                <div class="input-group input-group-sm" style="width: 150px;">
                  <input type="text" name="table_search" class="form-control pull-right" placeholder="Search">
                  <div class="input-group-btn">
                    <button type="submit" class="btn btn-default"><i class="fa fa-search"></i></button>
                  </div>
                </div>
              </div>
            </div>
            <!-- /.box-header -->
            <div class="box-body table-responsive no-padding">
              <table class="table table-hover">
                <tbody><tr>
                  <th>MSSV</th>
                  <th>Họ Tên</th>
                  <th>Ngày sinh</th>
                  <th>Ngày đăng kí </th>
                  <th>Giới tính</th>
                  <th>SĐT</th>
                  <th>CMND</th>
                  <th>Email</th>
                  <th>Quê quán</th>
                  <th>Sồ tiền TK</th>
                  <th>Phòng</th>
                  <th>Hành động</th>
                </tr>
                @foreach($dssv as $sinhvien)
                <tr>
                  <td>{{$sinhvien->sv_ma}}</td>
                  <td>{{$sinhvien->sv_hoTen}}</td>
                  <td>{{$sinhvien->sv_ngaySinh}}</td>
                  <td>{{$sinhvien->sv_ngayDk}}</td>
                   <td><?php echo ($sinhvien->sv_gioiTinh==1)?'Nam':'Nữ' ?></td>
                  <td>{{$sinhvien->sv_dienThoai}}</td>
                  <td>{{$sinhvien->sv_CMND}}</td>
                  <td>{{$sinhvien->sv_Email}}</td>
                  <td>{{$sinhvien->sv_queQuan}}</td>
                  <td>{{$sinhvien->sv_soTienTK}}</td>
                  <td>{{$sinhvien->phong->p_ten}}</td>
                  <td><button class="btn btn-default"><a href="{{ route('sinhvien.edit',['sinhvien' => $sinhvien->sv_id])}}"><i class="fa fa-fw fa-wrench"></i></a></button>
                      <button class="btn btn-danger" data-toggle="modal" data-target="#modal-danger" value="{{$id=$sinhvien->sv_id}}"><i class="fa fa-fw fa-trash-o"></i>
                      </button>

                  </td>
                </tr>
                    <!-- /.modal -->

                @endforeach
              </tbody></table>
            </div>
            <!-- /.box-body -->
          </div>
  <div class="modal modal-danger fade"  id="modal-danger">
          <div class="modal-dialog">
            <div class="modal-content">
              <div class="modal-header">
                <button type="button" class="close" data-dismiss="modal" aria-label="Close">
                  <span aria-hidden="true">×</span></button>
                <h4 class="modal-title">Cảnh báo</h4>
              </div>
              <div class="modal-body">
                <p>Bạn có muốn xóa sinh viên <?php echo $id?> không?</p>
              </div>
              <div class="modal-footer">
                <button type="button" class="btn btn-outline pull-left" data-dismiss="modal">Đóng</button>
                <form  method="POST" action="{{ route('sinhvien.destroy',['sinhvien' => $id])}}">{{ method_field("DELETE")}}
                       {{csrf_field()}}<input type="submit" name="btnxoa" class="btn btn-danger" value="Xóa"></input></form>
              </div>
            </div>
            <!-- /.modal-content -->
          </div>
          <!-- /.modal-dialog -->
        </div>  


@endsection

当我单击源中的按钮时,您会看到:"

 <button class="btn btn-danger" data-toggle="modal" data-target="#modal-danger" value="{{$id=$sinhvien->sv_id}}"><i class="fa fa-fw fa-trash-o"></i>
                          </button>

" 然后,它会显示一个确认是“你想删除这一行吗?”来源:

<div class="modal modal-danger fade"  id="modal-danger">
          <div class="modal-dialog">
            <div class="modal-content">
              <div class="modal-header">
                <button type="button" class="close" data-dismiss="modal" aria-label="Close">
                  <span aria-hidden="true">×</span></button>
                <h4 class="modal-title">Warning</h4>
              </div>
              <div class="modal-body">
                <p>Do you want to delete this row không? <?php echo $id?></p>
              </div>
              <div class="modal-footer">
                <button type="button" class="btn btn-outline pull-left" data-dismiss="modal">Đóng</button>
                <form  method="POST" action="{{ route('sinhvien.destroy',['sinhvien' => $id])}}">{{ method_field("DELETE")}}
                       {{csrf_field()}}<input type="submit" name="btnxoa" class="btn btn-danger" value="Delete"></input></form>
              </div>
            </div>
            <!-- /.modal-content -->
          </div>
          <!-- /.modal-dialog -->
        </div>  

我的问题是我从(我想删除的每一行)得到不正确的“sv_id”。 我需要你的帮助以提出更好的想法。非常感谢你 Display incorrect sv_id

【问题讨论】:

  • 请添加更多上下文。如果我们了解变量名称,我们会更容易提供帮助:) 在控制器的 delete 删除方法中添加 return $request;或返回 $request('id');查看正在传递的实际值...
  • 我刚刚更新了Controller。

标签: php laravel laravel-5 delete-row


【解决方案1】:

首先,您不能将按钮值发送到引导模型。您应该使用 data-id="{{$sinhvien->sv_id}}" 而不是 value="{{$id=$sinhvien->sv_id}}"

然后在这个按钮上使用Jquery的onclick函数,获取data-id属性的值。在模型表单中设置值,然后触发模型弹出窗口。

【讨论】:

    【解决方案2】:

    这是我的 App\http\SinhvienController.php:

    public function destroy($id)
        {
               try
            {
                $sinhvien=Sinhvien::find($id);
                $sinhvien->delete();
                $phong=Phong::find($sinhvien->p_id);
                $phong->p_soNguoi=$phong->p_soNguoi-1;
                if($phong->p_trangThai==2)
                {
                    $phong->p_trangThai=1;
                }
                $phong->save();
                return redirect(route('sinhvien.index'));
            }
            catch(QueryException $ex)
            {
                return response(['error'=> true ,'message'=> $ex->getMessage()],500);
            }
            //
        }
    

    【讨论】:

      【解决方案3】:

      您也可以使用 jQuery 或 Javascript 显示此删除确认消息。

      HTML 部分:

      <button class="btn btn-danger deleteBtn" sv_id="{{$sinhvien->sv_id}}">
      <i class="fa fa-fw fa-trash-o"></i>
      </button>
      

      Javascript 部分:

      <script>
          $(document).on('click', '.deleteBtn', function(){
          var sv_id = $(this).attr('sv_id');
          var confirmation = confirm('Do you want to delete this row '+sv_id);
          if(confirmation == true){
          //Do whatever you want
          } else {
          return false;
          }
          });
      </script>
      

      【讨论】:

      • 哦!谢谢你的想法。那么如何将变量从 js 传递给 php。?? EX:我想使用 js 中的变量“sv_id”来调用我的文件 php??
      • 通过使用jQuery ajax 函数,您可以轻松地将数据传递给php。 $.ajax({ url: // Route, data: {sv_id: sv_id}, type: 'GET', success: function(output) { alert(output); } });
      • 如果您查看本教程,您可能会有所了解。谢谢。 [expertphp.in/article/…
      • 对不起!此链接已失效。(错误 404)
      • 请在 google 或 youtube 上查看一些关于 jQuery Ajax 和 PHP 的教程。我想,你将能够得到一些想法。谢谢。
      猜你喜欢
      • 2018-02-16
      • 2022-12-05
      • 1970-01-01
      • 2019-04-22
      • 1970-01-01
      • 1970-01-01
      • 2013-01-08
      • 2020-04-06
      • 2020-07-15
      相关资源
      最近更新 更多