【问题标题】:Laravel : Prompt before deleting a userLaravel:删除用户前提示
【发布时间】: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()}}

【问题讨论】:

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

标签: laravel laravel-4 blade


【解决方案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 的另一种方法是创建一个视图,提示用户确认删除。您的删除按钮将成为确认页面的链接,并且确认页面将包含此表单。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2010-11-21
        • 2017-07-29
        • 2020-09-25
        • 2021-09-16
        • 2013-05-25
        • 1970-01-01
        • 2015-09-01
        • 2018-02-12
        相关资源
        最近更新 更多