Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP][MYSQL][AJAX]Ogromny problem z połączeniem Mysql, JS, PHP :/
Forum PHP.pl > Forum > Przedszkole
menda90
Witam.

Problem jaki posiadam przedstawia się następująco:
Wchodzimy na stronkę, widzimy na niej np. wartość "10". Została ona odczytana z bazy danych mysql. Następnie, admin zmienia tą wartość w bazie mysql w jakimś tam danym rekordzie na "12".
Teraz pytanie - jak zrobić aby bez przeładowywania strony, wartość "10" zamieniła się na tą "12" ? Szukałem już po wielu stronkach, przeglądałem Ajaxa, próbowałem w nim coś tam motać, ale bez powodzenia. Wiem napewno że da się to zrobić bo widziałem takie coś, jak coś to mogę podać stronkę, gdzie to jest zastosowane. Prosiłbym o jakies namiary, bo ręce opadają, a bez tego raczej się nie obejdę.
Darti
Widzisz, problem z przeglądarkami jest taki, że sesja, w której nastepuje wymiana danych użytkownik <-> serwer, trwa ułamki sekund.
Najsensowniejszym wyjściem jest odświerzanie miejsca, w którym wyświetlasz wartość 10. nie da to gwarancji, że wartość zmieni się dokładnie w momencie zmiany na serwerze, ale odświerzając, powiedzmy, co 2 sekundy najwyższe opóźnienie będzie wynosić własnie tyle.
Ajax bedzie pomocny gdyż pozowli odświerzyć stronę wymieniając minimalną ilość informacji i nie bedzie wymagane pobranie całej strony internetowej ale tylko jej mała część (kiedyś - przed ajaxem - doradziłbym iframe).
thm
o kurza twarz! zajefajna ksywa.

co n-sekund wykonuj w tle (ajaxem) skrypt wyciągający żądaną wartość z bazy i wypluwaj ją.
menda90
Dzieki wielkie, okazalo się to jednak proste - poprostu czasem mózg mi się wyłącza.

Może podam przykładowe rozwiązanie dla ludzi , którzy mają taki sam problem a nadal nie czają o co kaman.

Ściągamy darmową biblioteczke ajaxa, np. "mintAjax", na googlach łatwo znaleźć.
W pliku wystarczy umieścić prosty skrypt

  1. <script type="text/javascript" src="/js/ajax.js"></script>
  2. <script type="text/javascript">
  3.  
  4. function SendRequest() {
  5. var req = mint.Request();
  6. req.Send("cos.php", "response"); // <--- "cos.php" czyli ten pliczek który ma być wykonywany co n-sekund
  7. setTimeout("SendRequest()", 500);
  8. }
  9.  
  10. </head>
  11.  
  12. <body onLoad="SendRequest()">
  13. <div id="response"></div>
  14. </body>
  15. </html>

Proszę bardzo, to wszystko smile.gif
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.