Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Przekierowanie po wykonaniu funkcji...
Forum PHP.pl > Forum > Po stronie przeglądarki
blackroger
W jaki sposób przekierować stronę dopiero po wykonaniu długiej funkcji php? Ładuje do diva poprzez ajaxa stronę z parametrami i funkcją. Funkcja ta wykonuje się, a później ma się po wykonaniu przekierować na inna strone...jak to zrobić? Nie chodzi mi tu o żadną funkcję php tj. register_shutdown_function(). Najlepszym rozwiązaniem byłoby gdyby jakis element miał onload="" wtedy wywołało by się przekierowanie z javascriptu. Wiem jednak że onload można stosować w tylko w body.
  1. <?php
  2. include_once('../www_eventful/main/main.php');
  3.  
  4. $var=start_search($keyword, $lastpage, $checkbox, $sort); //ta funkcja wykonuje sie dlugo
  5. if ($var==1){
  6.    echo 'Script executed with success. Go to \"verify\" tab.
  7. ';
  8.   tutaj jakis obiekt ktory po zaladowaniu przekieruje na inna strone...
  9. }
  10. ?>


Fragment kodu wywołującego funkcje na zdarzenie onclick(nie wiem czy potrzebne):
Kod
function start_search(){
     var keyword = document.getElementById('keyword').value;
     var lastpage = document.getElementById('lastpage').value;
     var checkbox = document.getElementById('checkbox').value;
     var sort = document.getElementById('sort').value;
    
     document.getElementById('start').style.display='none';

     url = 'searching.php?keyword='+keyword+'&lastpage='+lastpage+'&checkbox='+checkbox+'&sort='+sort;
     getData(url, 'content');//ładowanie ajaxem
     //search_progress();

}
erix
Cytat
wtedy wywołało by się przekierowanie z javascriptu. Wiem jednak że onload można stosować w tylko w body.

Nie tylko. winksmiley.jpg

Poza tym, jaki problem przekierować po pomyślnym wykonaniu żądania AJAX? window.location.replace() nie znasz? snitch.gif
blackroger
Sorry, że zadam to głupie pytanie ale jak ja mam się dowiedzieć, że php zakończył swoje działanie? Mogę odczytać powiedzmy wartość return wywołanej funkcji ale to się ma nijak do javy...bo ona musiałaby wtedy czekać aż php skończy...
erix
Jak się ma nijak? Przecież jak wczytujesz dane przez AJAX, to gdy odbierzesz dane, to wywoływana jest bodajże metoda onSuccess.

No chyba, że wysyłasz kilka żądań, to wtedy wystarczy przy zakończeniu wypluwania danych wypisać wartość np. OK, koniec danych i w metodzie onSuccess sprawdzać, jeśli zwrócona przez serwer wartość równa się tej "magicznej" - przekierowanie.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.