web-dev-qa-db-fra.com

Recharger la page après le succès ajax

J'ai des problèmes avec la redirection/rechargement après un appel ajax réussi. Voici la situation:

J'ai un élément à supprimer enregistré dans un tableau. Lorsque je clique sur un bouton, il appelle PHP via ajax, et après le succès, je dois recharger la page. Mais j'ai un problème pour le faire. J'ai cherché sur Internet et je n'ai pas pu trouver une solution de travail.

J'ai PHP fichier qui passe par le tableau en supprimant élément par élément de la base de données.

foreach($arrayVals as $key=>$val)
{
    //bla bla
}

Aussi, j'ai une partie jQuery:

$("#button").live("click",function(){
    $.ajax({
        url, data, type... not important
        success: function(html){
                    location.reload();
                }
    });
});

Je veux dire, le code fonctionne, mais pas bon. Il supprime les éléments, mais pas tous, puis recharge la page. Par exemple, si j'ai 10 éléments à supprimer, il supprime comme 6-7, et 3-4 éléments ne sont pas supprimés.

Il agit comme s'il rechargeait la page trop tôt, comme PHP n'a pas assez de temps pour tout traiter: D

15
bosniamaj

BrixenDK a raison.

.ajaxStop() rappel exécuté lorsque tous les appels ajax sont terminés. C'est le meilleur endroit pour mettre votre gestionnaire.

$(document).ajaxStop(function(){
    window.location.reload();
});
46
Vikas Naranje

Vous utilisez ajaxStop pour exécuter du code lorsque l'ajax est terminé:

$(document).ajaxStop(function(){
  setTimeout("window.location = 'otherpage.html'",100);
});
12
brixenDK

utilisez ceci Recharger la page

success: function(data){
   if(data.success == true){ // if true (1)
      setTimeout(function(){// wait for 5 secs(2)
           location.reload(); // then reload the page.(3)
      }, 5000); 
   }
}
4
naveen kumar