Laravel:删除用户前提示

Posted

技术标签:

【中文标题】Laravel:删除用户前提示【英文标题】:Laravel : Prompt before deleting a user 【发布时间】:2015-01-05 22:14:11 【问题描述】:

我正在使用以下代码成功删除表中的记录。我唯一的问题是,我希望它在删除之前提示用户确认操作。

link_to_route('individualprofiles.edit', 'Edit', array($ip->id))
Form::open(array( 'route' => array( 'individualprofiles.destroy', $ip->id ), 'method' => 'delete', 'style' => 'display:inline'))
     Form::submit('D', array('class' => 'btn btn-danger'))
Form::close()

【问题讨论】:

Check this. @The Alpha 可能你只是草拟一个快速的答案,所以我可以接受。你的链接对我有用。但我认为对您来说非常重要的是,将按钮类型更改为按钮对于它在某些版本的 Bootstrap 上工作至关重要。看了你的评论我就知道了。 【参考方案1】:

你可以试试这样的:

步骤 - 1

首先,您需要使用链接标签添加bootstrap.css 文件,在网页的head 部分使用脚本标签添加jQuerybootstrap.js 文件。在 bootstrap 的网站上,您会找到有关此的详细信息。如果您不想使用完整的引导框架,也可以使用此处选择的组件构建自定义文件。

步骤 - 2

在文件中添加以下html代码,并保存为单独的文件,例如delete_confirm.php

<!-- Modal Dialog -->
<div class="modal fade" id="confirmDelete" role="dialog" aria-labelledby="confirmDeleteLabel" aria-hidden="true">
  <div class="modal-dialog">
    <div class="modal-content">
      <div class="modal-header">
        <button type="button" class="close" data-dismiss="modal" aria-hidden="true">&times;</button>
        <h4 class="modal-title">Delete Parmanently</h4>
      </div>
      <div class="modal-body">
        <p>Are you sure about this ?</p>
      </div>
      <div class="modal-footer">
        <button type="button" class="btn btn-default" data-dismiss="modal">Cancel</button>
        <button type="button" class="btn btn-danger" id="confirm">Delete</button>
      </div>
    </div>
  </div>
</div>

另外,将以下 javascript 代码也粘贴到同一文件中

<!-- Dialog show event handler -->
  $('#confirmDelete').on('show.bs.modal', function (e) 
      $message = $(e.relatedTarget).attr('data-message');
      $(this).find('.modal-body p').text($message);
      $title = $(e.relatedTarget).attr('data-title');
      $(this).find('.modal-title').text($title);

      // Pass form reference to modal for submission on yes/ok
      var form = $(e.relatedTarget).closest('form');
      $(this).find('.modal-footer #confirm').data('form', form);
  );

  <!-- Form confirm (yes/ok) handler, submits form -->
  $('#confirmDelete').find('.modal-footer #confirm').on('click', function()
      $(this).data('form').submit();
  );

第 3 步

现在,在您要使用此确认模式对话框的任何页面中,只需使用 require_onceinclude_once 将其包括在内:

// other code
require_once('delete_confirm.php');

步骤 - 4

要构建删除操作按钮,您可以使用以下内容:

<form method="POST" action="http://example.com/admin/user/delete/12" accept-charset="UTF-8" style="display:inline">
    <button class="btn btn-xs btn-danger" type="button" data-toggle="modal" data-target="#confirmDelete" data-title="Delete User" data-message="Are you sure you want to delete this user ?">
        <i class="glyphicon glyphicon-trash"></i> Delete
    </button>
</form>

欲了解更多信息check this article

【讨论】:

【参考方案2】:

通过在Form::open 中使用'onsubmit' =&gt; "return confirm('Are you sure you want to delete?')"

Form::open(array( 
    'route' => array( 'individualprofiles.destroy', $ip->id ), 
    'method' => 'delete', 
    'style' => 'display:inline',
    'onsubmit' => "return confirm('Are you sure you want to delete?')",
))
     Form::submit('D', array('class' => 'btn btn-danger'))
Form::close()

【讨论】:

【参考方案3】:

向您的表单添加一个 ID 或类,并使用 javascript 捕获表单提交操作。提示用户,如果他们确认,使用 javascript 提交表单。

不使用 javascript 的另一种方法是创建一个视图,提示用户确认删除。您的删除按钮将成为确认页面的链接,并且确认页面将包含此表单。

【讨论】:

以上是关于Laravel:删除用户前提示的主要内容,如果未能解决你的问题,请参考以下文章

laravel软删除和恢复删除用户

centos 删除文件夹的命令是啥来的

centos删除文件夹的命令是啥来的

Mac删除文件时显示“不能完成此操作,因为项目‘xxxx’正在使用中”(添加/删除新用户引发的问题)

在 laravel 5.4 中检索软删除的用户帖子

vue(element-ui)删除前提示弹窗this.$confirm