Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: PHP odświeżanie bez przeładowania
Forum PHP.pl > Forum > Przedszkole
Misiuu
Witajcie !
Znalazłem w internecie skrypt na odświeżanie elementu na stronie, jakiegoś diva, co sekunde, bez przeładowania.
Wszystko działa jak należy ale pojawiły sie nieprzewidziane przeze mnie trudności, chciałem zrobić odświeżanie wiadomości na stronie głownej.
Jest sobie div, który sie odświeża a w nim jest texarea do komentarzy, lecz, gdy div odświeża sie co sekunde, logiczne jest ze zawartość textarea też jest oświeżana, gdy próbuje tam coś wpisać. Macie jakiś pomysł, który pozwoliłby mi na zapełnianie texareny a przy okazji dodawania nowych divów na strone , tak aby mozna było spokojnie dopisywać komentarz? podobnie jak na FB.

Tutaj podaje skrypt którego używam

  1. <script language=javascript>
  2. // tworzymy zmienna
  3. var object = false;
  4.  
  5. // tworzymy obiekt XMLHttpRequest (dla IE jest troche inaczej, stad funkcja warunkowa)
  6. if (window.XMLHttpRequest) object = new XMLHttpRequest();
  7. else if (window.ActiveXObject) object = new ActiveXObject("Microsoft.XMLHTTP");
  8.  
  9. // ponizsza funkcja pobiera dane ze wskazanego zrodla (pliku lub skryptu php) do wskazanego
  10. // DIVa poprzez obiekt XMLHttpRequest
  11. function getData(dataSource, divID)
  12. {
  13. // kontynuuje wylacznie gdy obiekt nie jest zajety
  14. if (object.readyState==4 || object.readyState==0)
  15. {
  16. // tworzy zmienna odpowiadajaca konkretnemu obiektowi na stronie
  17. var obj = document.getElementById(divID);
  18.  
  19. // czyta z pliku lub wykonuje skrypt
  20. object.open("GET", dataSource);
  21.  
  22. // definiuje metode obslugi odpowiedzi serwera
  23. object.onreadystatechange = function()
  24. {
  25. // kontynuuje jesli transmisja zostala zakonczona powodzeniem
  26. if (object.readyState == 4 && object.status == 200)
  27. obj.innerHTML= object.responseText;
  28. }
  29. // wysyla zadanie do serwera
  30. object.send(null);
  31. }
  32. }
  33.  
  34. // w ponizszej funkcji wywolujemy funkcje getData z odpowiednimi parametrami
  35. // oraz wywolujemy ja sama rekurencyjnie po co okreslony czas (w naszym wypadku 1000 ms)
  36. function odswiezaj()
  37. {
  38. getData('site/main.php','mojDIVIK');
  39. setTimeout("odswiezaj()", 1000);
  40. }
  41.  
  42. </script>



  1. <script language=javascript>
  2. odswiezaj();


Dziękuje, czekam na propozycje.
Kshyhoo
Dlaczego w dziale PHP?
ziolo
Wyjmij textarea poza tego diva. I wizualnie w css ustaw go w tym samym miejscu co poprzednio.
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.