【问题标题】:delete project with modal in laravel在laravel中使用模态删除项目
【发布时间】:2017-05-28 21:42:28
【问题描述】:

我的项目旁边有一个删除按钮,每当单击该按钮时,它都会显示一个弹出模式以进行确认。我希望模式中的“是”按钮在单击此按钮时删除项目。

我正在使用@include 将模式调用到项目/显示视图中。使用以下 jquery 单击按钮时会出现模式,但按下是按钮时不会删除项目。

<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.1/jquery.min.js"></script>


<script>
$(document).ready(function() {

   $(".delete").on("submit", function(e){

       e.preventDefault();

       $('#myModal').modal('show'); 


    });

});

项目旁边的删除按钮:

  {!! Form::open(['route' => ['projects.destroy', $projects->id], 'class' => 'delete', 'method' => 'DELETE']) !!}

           {!!Form::button('<span class="glyphicon glyphicon-remove"></span>', ['class' => 'btn btn-danger btn-md', 'type' => 'submit'])!!}

            {!! Form::close() !!}

模式代码:

<!-- Modal -->
<div class="modal fade" id="myModal" tabindex="-1" role="dialog" aria-labelledby="myModalLabel">
  <div class="modal-dialog modal-md" role="document">
    <div class="modal-content">
      <div class="modal-header">
        <button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">&times;</span></button>
        <h4 class="modal-title text-center" id="myModalLabel">Delete Confirmation</h4>
      </div>
      <div class="modal-body text-center">
        Are you sure you want to delete this project?
      </div>
      <div class="modal-footer">
        <button type="submit" id="delete-btn" class="btn btn-default" >Yes</button>

        <button type="button" class="btn btn-primary" data-dismiss="modal">Cancel</button>
      </div>
    </div>
  </div>
</div>

项目控制器:

<?php

namespace App\Http\Controllers;

use App\project;
use App\Http\Requests;
use Illuminate\Http\Request;
use Session;

class ProjectsController extends Controller
{

 public function destroy($id){

        $project = Project::find($id);

        $project->delete();

        Session::flash('success', 'The project was successfully deleted!');

        return redirect()->route('projects.show', $project->project_id);

    }

}

【问题讨论】:

  • 到底是什么问题?
  • 问题是每当我单击模式中的“是”按钮时,它什么也不做,我正在寻找这个按钮来删除项目。
  • 你引用了一条路由'projects.destroy',那条路由有什么作用?
  • @Loek 这条路线在设置为删除的项目控制器中。
  • 啊,您的 JavaScript 正在拦截您对路由的请求,而是显示一个模态框。如此有效,什么都没有发生。 api.jquery.com/event.preventdefault我不知道足够多的JavaScript来给你工作代码,但你应该确保当点击模态中的提交按钮时,请求实际上到达了路由

标签: php jquery laravel routes bootstrap-modal


【解决方案1】:

将模式中的提交按钮更改为:

{!! Form::open(['route' => ['projects.destroy', $projects->id], 'class' => 'delete', 'method' => 'DELETE']) !!}

<button type="submit" id="delete-btn" class="btn btn-default" >Yes</button>

{!! Form::close() !!}

最好的解决方案是删除您现在拥有的删除按钮的实现,并使其成为普通按钮。让该按钮弹出模态框,并用我上面所做的实际删除按钮替换您的“是”按钮。

【讨论】:

  • 我已将该代码添加到我的模式中,并且我得到了一个未定义的变量 - 项目。即使我已将模态文件包含在 show.blade.php 文件中。
  • 哦,等等,你包括了当然的模态。如果将模态复制到加载的视图中?
  • 没问题!我确信有一种方法可以使您的模态包含在内,但我无法帮助您;)
  • 我有一个简单的问题。即使它删除了它以错误的顺序删除的项目大声笑它不会按项目 ID 删除??
  • 我怎样才能通过 id。
猜你喜欢
  • 1970-01-01
  • 2015-07-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-12-12
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多