Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]mini pasek postepu
Forum PHP.pl > Forum > Przedszkole
piotrek4523
mam cos takiego
  1. for($i=0;$i<$ile_razy;$i++)
  2. {
  3.  
  4. echo $i/$ile_razy*100;
  5.  
  6. i tu dalej jakis skrypt
  7.  
  8. }


wszystko pokazuje dobrze, tylko jak mozna zrobic zeby ta pierwsza linijka pokazywala sie zawsze po zwiekszeniu $i o 1
a nie tak jak jest teraz, czyli pokazuje mi wszystko dopiero po zakonczeniu calej petli
lobopol
Wybacz, ale za cholerę nie mogę zrozumieć o co ci chodzi.
IceManSpy
Nie możesz tego zrobić stricte za pomocą PHP. Bo kod napisany PHP jest wykonywany w całości po stronie serwera, a potem wypluwany na ekran przeglądarki. Może AJAX będzie w tym przypadku pomocny.
piotrek4523
masz moze jakiegos linka z tutorialem jak to mozna zrobic w ajaxie
dodam tylko ze nic w ajax wczesniej nie robilem
vokiel
Poczytaj o ob_flush() i flush()
piotrek4523
to co napisales wyzej jak dla mnie jest wystarczajace i dziala dobrze, tylko mam jeszcze jedno pytanie
czy da rade zmienną, którą wypluwa aktualnie z petli pobrac w jakies inne miejsce np do div
czyli mam cos takiego

  1. <div>zmienna $tmp pobierana z petli i odswiezana za kadym razem gdy kod w petli jest wypluwany na strone</div>
  2.  
  3. for($i=0;$i<$ile_razy;$i++)
  4. {
  5.  
  6. $tmp = $i/$ile_razy*100;
  7.  
  8. echo $tmp;
  9.  
  10. i tu dalej jakis skrypt
  11.  
  12. flush();
  13. usleep(300000);
  14. }
vokiel
Jeśli korzystasz z ob_flush(); i flush(); to wysyłasz do przeglądarki kod html partiami, a nie tak jak normalnie na raz. Strona cały czas się ładuje, więc operacje na DOM jeszcze są niemożliwe. Poza tym, żeby coś wpisać do wybranego div'a to trzeba już skorzystać z JavaScript. Z tym, że jeśli zaczniesz przetwarzać kod js, to zatrzymujesz przetwarzanie html'a. Poza tym, żeby operować na DOM strona powinna być załadowana, a tak nie jest jeśli są dosyłane partie kodu.
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.