Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Wyświetlenie tekstu i przekierowanie po kilku sekundach
Forum PHP.pl > Forum > PHP
michal_s
Witam. Chcę zrobić aby skrypt po wykonaniu zapytani w bazie wyświetlił komunikat ze wszystko zostało zakończone powodzeniem i po 5 sekundach przekierował na inną stronę. Próbowałem zrobić coś takiego, ale nie działą tak jak powinno. Kombinowalem na wiele sposobów ale nigdy tekst o poprawności nie byl wyswietlany przez te 5 sekund. co jest źle?

  1. if ( mysql_query($zapytanie) ) {
  2. echo 'dodanie się udało!';
  3. sleep(5);
  4.  
  5. ?>
  6.  
  7. <script> window.location = "http://strona.html" </script>
  8. <?php }

chciałem przekierowanie zrobic headerem ale sa jakies zmienne przekazywane i generuje bledy.
vermis
Użyj funkcji setTimeout() do opóźnienia w JS.
http://www.w3schools.com/js/js_timing.asp
michal_s
Ok. Naskrobałem coś w JS i działa jak chciałem. Dzieki za podpowiedź. A ma ktoś pomysł jak to zrobi bez JS?
cycofiasz
Wywal to sleep i daj w head takie coś:

  1. <meta http-equiv="refresh" content="5;url=plik.php">


lub w php przed jakimkolwiek echo itp:

  1. header("refresh:5;url=plik.php");
michal_s
No jak pięknie działa w php. dzięki

Mam jeszcze jedno pytanie. Przesyłam z formularza dane do mojego skryptu php. On sprawdza ich poprawność i jeśli są dobrze wpisane wykonuje je. Jak zrobić że jeśli odnajdzie błąd poprzez jednego z "if'ów' pokaże komunikat i cofnie do strony wpisywania danych po np. 5 sekundach i tutaj ważne żeby po prostu jej nie odświeżył ale aby dane w formularzu zostały takie same jak przed wysłaniem. da sie to jakoś zrobić? Mam nadzieje że w miarę jasno to opisałem
Kshyhoo
Pokaż kod, wróżka ma wolne winksmiley.jpg
michal_s
  1. if (empty($plik) and !empty($adres))
  2. {
  3.  
  4. $przecinki = substr_count( $tagi, ',' );
  5.  
  6. if (url_exists($adres)==1)
  7. {
  8.  
  9.  
  10. if ($przecinki > 2)
  11. {
  12.  
  13. if(!empty($adres) and !empty($nazwa) and !empty($tagi) and !empty($autor))
  14. {
  15.  
  16.  
  17.  
  18. $data=date('Y-m-d');
  19. $zapytanie = "INSERT ...
  20.  
  21. mysql_query($zapytanie);
  22. $tekst = 'Dodawanie zakończone powodzeniem!!!';
  23.  
  24. require("plik.php"); //plik z ogolnym zarysem strony
  25. header("refresh:5;url=dodawanie.php");
  26. wszystko($tekst); // funkcja z pliku dolaczonego. zmienna to tekst do wyswietlenia na stronie
  27.  
  28. }
  29.  
  30. else {
  31. echo 'Nie wszystkie dane zostały wpisane poprawnie';
  32. }
  33. }
  34. else
  35. {
  36. echo 'Musisz podać minimum 4 tagi!!!';
  37. }
  38. }
  39.  
  40. else {
  41. echo 'Lepiej sprawdź jeszcze raz adres do obrazka !!!';
  42. }
  43.  
  44. }



Wiem ze ogólnie pewnie można to napisał 100* łądniej i czytelniej ale działa hehe
Rozchodzi się o to by te else były wyswietlane podobnie jak komunikat z zakączenie pomyślnego i by wracało do formularza z zachowaniem danych które już tam są. Chyba że standardowo na stronach robie się to jeszcze inaczej... Nie ogarniam zbytnio tego algorytmu jaki się stosuje. np. z podświetlaniem błędnie wpisanego inputa..
ciekawskiii
Zapisuj dane w sesji a pozniej z sesji je wyswietlaj
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.