当我使用注释掉的模式对话框脚本运行此代码时,我看到我的控制器消息弹出。当我用脚本尝试时,出现模式弹出窗口,但单击确定或取消不会执行任何操作。我怀疑这是与“attr('action')”有关的,但我找不到它的文档,也不知道如何让它路由到控制器。我试图改变'行动'到'销毁'和'删除',但没有奏效。laravel modal删除确认不会破坏路由
<td> {{Form::open(array('method'=>'DELETE', 'route' => array('users.destroy', $user->id)))}}
{{Form::submit('Delete', array('class'=>'btn btn-danger'))}}
{{Form::close()}}
</td>
脚本
<script>
$(document).ready(function(){
$('.btn-danger').submit(function(e){
e.preventDefault();
url = $(this).parent().attr('action');
BootstrapDialog.confirm('Are you sure you want to delete?', function(result){
if(result) {
$.ajax(url);
}
});
});
});
</script>
控制器
public function destroy($id)
{
print_r($id);
// User::find($id)->delete();
// return View::make('hello');
Response::json(['message'=>'Delete was successful']);
}
在我的路线我有
Route::resource('users', 'UserController');
运行PHP的工匠把它路由显示
URI: DELETE users/{users} | Name: users.destroy | Action: [email protected]
如下所示更改jquery行将进入控制器消息,但现在缺少模式确认。
url = $(this).parent().attr('action');
BootstrapDialog.confirm('Are you sure you want to delete?', function(result){
if(result) {
$.ajax({url:url,
type:"DELETE",
success: function(data, textStatus, jqXHR) {
alert(data.message + textStatus + jqXHR.responseText);},
error: function(jqXHR, textStatus, errorThrown) {
alert('Failure: ' + textStatus + ". Error: " + errorThrown);}
});
谢谢!我更改了jquery行,将类型设置为DELETE,并删除了该操作,现在它可以工作。 – Phil 2014-09-04 18:07:44
实际上我很快就会谈到,插入该行打破了模式确认,但继续显示控制器弹出消息 – Phil 2014-09-04 18:16:06
不知道如果jQuery的更改工作。尝试'$ .ajax({url:url,type:“DELETE”});'同时检查当你取消确认时,看看实际返回的结果。 – bgallagh3r 2014-09-04 22:33:34