Php Laravel:控制器破坏函数的模态确定

Php Laravel:控制器破坏函数的模态确定,php,laravel,eloquent,Php,Laravel,Eloquent,我有一个删除按钮用来删除这样的记录 {{Form::open(array('method'=>'DELETE', 'route' => array('users.destroy', $user->id)))}} {{Form::submit('Delete', array('class'=>'btn btn-danger'))}} {{Form::close()}} 表单路由到我喜欢的控制器销毁函数 public function destroy($id) {

我有一个删除按钮用来删除这样的记录

{{Form::open(array('method'=>'DELETE', 'route' => array('users.destroy', $user->id)))}}
{{Form::submit('Delete', array('class'=>'btn btn-danger'))}}
{{Form::close()}}
表单路由到我喜欢的控制器销毁函数

public function destroy($id)
{                                                          
  User::find($id)->delete();
  return Redirect::route('users.index');
}     
但是我想在删除记录之前弹出一个确认警报。控制器是否有办法打开模式对话框并获取返回值?或者控制器是否打开了一个视图,打开了一个模式,该模式再次指向另一个删除的控制器或重新路由的控制器…对控制器应该如何以这种方式控制逻辑感到困惑

我在我的
部分中有twitter引导和jquery,就像这样

<link href="//netdna.bootstrapcdn.com/twitter-bootstrap/2.3.1/css/bootstrap-combined.min.css" rel="stylesheet">    |
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
|

控制器与您无关,只需使用一些JavaScript即可

因为您使用的是引导,所以最简单的方法就是使用

{{Form::open(数组('method'=>'DELETE','route'=>array('users.destroy',$user->id))}
{{Form::submit('Delete',array('class'=>'btn-btn-danger'))}
{{Form::close()}}
$(文档).ready(函数(){
$('form')。提交(函数(e){
e、 预防默认值();
url=$(this.parent().attr('action');
BootstrapDialog.confirm('确实要删除吗?'),函数(结果){
如果(结果){
$.ajax(url);
}
});
});
});
注意不要忘记在引导和jQuery包含之后添加以下内容

<script src="your link to bootstrap-dialog.js"></script>

你可以从下载


您只需使用ajax控制按钮的点击,打开一个模式对话框,在模式对话框中的删除按钮上,您最终可以向控制器提交post请求。最简单的处理方法是在提交表单之前通过JS实现确认警报。您可以显示一个简单的JS
confirm
对话框,或者通过AJAX加载控制器生成的详细信息。这两个选项都不需要重新加载/重定向页面。谢谢!这就是我要找的。但我不能让它工作。没有弹出窗口出现,我很难找出原因。为了测试它,我添加了一个警报(“test”);在jQuery脚本的开头,当我的页面加载时,当我单击“删除”按钮时,该脚本确实会出现,但其他脚本似乎不起作用。@Phil你能做一个JSFIDLE来调查这个问题吗?问题是dom元素
$('form.btn.btn danger')
需要像
href=“\
。因为
preventDefault()在此不生效。这是我能做的最接近的小提琴。我不得不使用inspect元素的输出来获取html,因为我不知道如何让它与Laravel的代码一起工作。我还留下了配置地址,因为我不知道如何为另一个环境设置它。我希望这足以解决对话框不出现的问题。很抱歉,我编辑了“form.btn.btn danger”,因为它不起作用
<script src="your link to bootstrap-dialog.js"></script>