Когда я запускаю этот код с закомментированным сценарием модального диалога, я вижу всплывающее сообщение моего контроллера. Когда я пробую это со скриптом, появляется модальное всплывающее окно, но нажатие кнопки «ОК» или «Отмена» ничего не делает. Я подозреваю, что это как-то связано с «attr('action')», но я не смог найти для него документацию и не уверен, как заставить его направлять на контроллер. Я попытался изменить «действие» на «уничтожить» и «удалить», но это не сработало.
<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 artisan, которые он показывает
URI: DELETE users/{users} | Name: users.destroy | Action: UserController@destroy
Изменение строки 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);}
});