Bonjour,

quelqu'un aurait t-il reussi la confirmation de suppression avec sweetAlert si oui
comment dois-je faire ?

Voila comment je m'y prends.

routes :

Route::delete('peri/truncate','siteDechet@truncatePeri')->name('peri.truncatePeri');

index.blade.php
{
{{ Form::open(['route' => ['peri.truncatePeri'], 'method' => 'delete']) }}
<button class="btn btn-warning" id="periTruncate">RAZ table déchets</button>
{{ Form::close() }}
}

JS

$('#periTruncate').on('click', function(e){
e.preventDefault();

    swal({
        title             : "Are you sure?",
        text              : "You will not be able to recover this Album!",
        type              : "warning",
        showCancelButton  : true,
        confirmButtonColor: "#DD6B55",
        confirmButtonText : "Yes, delete it!",
        cancelButtonText  : "No, Cancel delete!",
        closeOnConfirm    : false,
        closeOnCancel     : false
    },
     function(isConfirm){
      if (isConfirm) {
      $.ajax({
       method: 'delete',
       url: that.attr('action'),
      })
     .done(function() {

     .fail(function() {

    }); 

   }  
 });

});
}

Controller

public function truncatePeri(Request $request) {

    $site_id = auth()->user()->site_id; 
    $peri = DB::table('peris')->where('site_id', $site_id)->delete();  
    alert()->success('Bien joué !', 'La remise à zéro a été effectuée avec succès');
    return redirect(route('peri.indexPeri'));

}

}

Donc lorsque je clique sur oui supprimé, ca doit me supprimer toute ma table selon ma clé étrangère mais
rien ne ce passe c'est la qu'est le problème..

PS : SI quelqu'un pourrait-me dire comment je pourrais mettre mon code de la bonne manière ce serait sympa je pensais quand mettant le code dans les accolades ca irait mais apparement pas vraiment enfin il y a certain bout qui ne sont pas compris dedans.

1 réponse


Salut,

Il faut placer ton code dans les balises :

` ` `
//Le code ici (sans les espaces entre les `)
` ` `

Pour ton soucis, regarde ce que te retourne ta requête Ajax (via la console de ton navigateur). Tu fais un return redirect, donc tu retourne une page HTML en réalité. Tu peux cependant, retourner l'URL (en texte) et en JS, dans la fonction .done(function(url){ }) faire le changement de page en JS. Par contre, utiliser une requête Ajax pour rediriger derrière, je vois pas trop l'interêt. En tout cas, regarde toujours ce que te renvoi une requête Ajax si ça correspond bien à ce que tu attends.