У меня возникли проблемы с перенаправлением / перезагрузкой после успешного вызова ajax. Вот ситуация:
У меня есть элемент для удаления, сохраненный в массиве. Когда я нажимаю кнопку, он вызывает файл PHP через ajax, и после успеха мне нужно перезагрузить страницу. Но у меня есть некоторые проблемы с этим. Я искал в Интернете и не нашел рабочего решения.
У меня есть файл PHP, который проходит через массив, удаляющий элемент за элементом из базы данных.
foreach($arrayVals as $key=>$val) { //bla bla }
Кроме того, у меня есть часть jQuery:
$("#button").live("click",function(){ $.ajax({ url, data, type... not important success: function(html){ location.reload(); } }); });
Я имею в виду, что код работает, но не хорошо. Он удаляет элементы, но не все из них, а затем перезагружает страницу. Например, если у меня есть 10 элементов для удаления, они удаляются как 6-7, а 3-4 элемента остаются восстановленными.
Он действует так же, как перезагружает страницу слишком рано, например, PHP-файл не имеет достаточного времени для обработки всего: D
BrixenDK прав.
.ajaxStop()
выполняемый при завершении всего вызова ajax. Это лучшее место для размещения вашего обработчика.
$(document).ajaxStop(function(){ window.location.reload(); });
Вы используете ajaxStop для выполнения кода при завершении ajax:
$(document).ajaxStop(function(){ setTimeout("window.location = 'otherpage.html'",100); });
используйте эту страницу перезагрузки
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); } }