Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP][JavaScript][AJAX] Wyświetlanie rekordów z bazy mysql., Jak wyżej.
miras
post 30.06.2012, 14:54:09
Post #1





Grupa: Zarejestrowani
Postów: 1 004
Pomógł: 9
Dołączył: 18.01.2011
Skąd: Siedlce

Ostrzeżenie: (30%)
XX---


Witam, mam następujący problem a mianowicie mam sobie pewną tabelę w bazie danych w niej trzymam dane np. samochod, kolor, numery i problem polega na tym, że ja muszę wyświetlać te dane z bazy 'dynamicznie' tzn, że podczas zalogowania sesji użytkownika jak ktoś doda jakiś rekord do bazy to on ma mi się automatycznie bez odświeżania strony wyświetlić, coś jak wyświetlanie danych na stronie głównej: i jeżeli ktoś doda jakiś nowy rekord to na głównej automatycznie bez odświeżania strony się on pojawi, poproszę o jakieś wskazówki, bo nie znam ajaxa na tyle, żeby napisać coś takiego, kompletnie nie wiem jak się za to zabrać.

Dzięki z góry!


--------------------
Go to the top of the page
+Quote Post
csharp
post 30.06.2012, 17:43:41
Post #2





Grupa: Zarejestrowani
Postów: 127
Pomógł: 3
Dołączył: 22.04.2012
Skąd: Warszawa

Ostrzeżenie: (0%)
-----


krok po kroku...

http://woork.blogspot.com/2007/10/insert-r...using-ajax.html


--------------------
Prywatny blog -> cupial.com.pl
Go to the top of the page
+Quote Post
miras
post 1.07.2012, 12:10:08
Post #3





Grupa: Zarejestrowani
Postów: 1 004
Pomógł: 9
Dołączył: 18.01.2011
Skąd: Siedlce

Ostrzeżenie: (30%)
XX---


nie chodziło mi o takie dodawanie rekordów do bazy, tylko o wyświetlanie tych rekordów dynamicznie na głównej, żeby po każdym dodaniu rekordu na głównej stronie ten rekord się wyświetlił bez przeładowywania strony..


--------------------
Go to the top of the page
+Quote Post
Niktoś
post 1.07.2012, 12:46:33
Post #4





Grupa: Zarejestrowani
Postów: 1 195
Pomógł: 109
Dołączył: 3.11.2011

Ostrzeżenie: (10%)
X----


Zobacz tutaj:
http://www.w3schools.com/php/php_ajax_database.asp
Go to the top of the page
+Quote Post
miras
post 1.07.2012, 13:44:02
Post #5





Grupa: Zarejestrowani
Postów: 1 004
Pomógł: 9
Dołączył: 18.01.2011
Skąd: Siedlce

Ostrzeżenie: (30%)
XX---


Już bliżej, ale nadal nie rozumiecie, o co mi chodzi, a mi chodzi o to, że mam sobie takie wyświetlanie danych z bazy:

http://aron.zxy.me/kosz/test/getuser.php

tu jest kod:
  1.  
  2. <?php
  3.  
  4. include("config.php");
  5.  
  6. $wynik = mysql_query("SELECT * FROM uzytkownicy")
  7. or die('Błąd zapytania');
  8.  
  9. if(mysql_num_rows($wynik) > 0) {
  10.  
  11.  
  12.  
  13. echo "<table border='1'>
  14. <tr>
  15. <th>login</th>
  16. <th>haslo</th>
  17. <th>mail</th>
  18. <th>imie</th>
  19. <th>nazwisko</th>
  20. </tr>";
  21.  
  22. while($row = mysql_fetch_assoc($wynik))
  23. {
  24. echo "<tr>";
  25. echo "<td>" . $row['login'] . "</td>";
  26. echo "<td>" . $row['haslo'] . "</td>";
  27. echo "<td>" . $row['mail'] . "</td>";
  28. echo "<td>" . $row['imie'] . "</td>";
  29. echo "<td>" . $row['nazwisko'] . "</td>";
  30. echo "</tr>";
  31. }
  32. echo "</table>";
  33. }
  34. ?>


a ja potrzebuję zrobić coś dokładnie takiego samego, tylko, że jeżeli np. dodam jakiś nowy rekord do bazy to on automatycznie się wyświetli('doda do tej tabelki') bez przeładowywania strony, rozumiecie ?

mam coś takiego:


plik wybor.js

  1. var xmlhttp;
  2.  
  3. function showPart(str)
  4. {
  5. xmlhttp=GetXmlHttpObject();
  6. var url="getuser.php";
  7. url=url+"?part="+str;
  8. url=url+"&sid="+Math.random();
  9. xmlhttp.onreadystatechange=stateChanged;
  10. xmlhttp.open("GET",url,true);
  11. xmlhttp.send(null);
  12. }
  13.  
  14. function stateChanged()
  15. {
  16. if (xmlhttp.readyState==4)
  17. {
  18. document.getElementById("informacja").innerHTML=xmlhttp.responseText;
  19. }
  20. }
  21.  
  22. function GetXmlHttpObject()
  23. {
  24. if (window.XMLHttpRequest)
  25. {
  26. return new XMLHttpRequest();
  27. }
  28. return null;
  29. }


plik index.php

  1. <head>
  2. <script type="text/javascript" src="wybor.js"></script>
  3. </head>
  4.  
  5. <strong>Wybierz część</strong>
  6. <select name="rekord" onchange="showPart(this.value)">
  7. <option value="1">Lusterko</option>
  8. <option value="2">Opony letnie</option>
  9. <option value="3">Katalizator</option>
  10. </form>
  11. <br />
  12. <div id="informacja">Opis wybranej części:</div>
  13.  
  14. </body>
  15. </html>


i plik getuser.php

  1.  
  2.  
  3.  
  4.  
  5. <?php
  6.  
  7. include("config.php");
  8.  
  9. $wynik = mysql_query("SELECT * FROM uzytkownicy")
  10. or die('Błąd zapytania');
  11.  
  12. if(mysql_num_rows($wynik) > 0) {
  13.  
  14.  
  15.  
  16. echo "<table border='1'>
  17. <tr>
  18. <th>login</th>
  19. <th>haslo</th>
  20. <th>mail</th>
  21. <th>imie</th>
  22. <th>nazwisko</th>
  23. </tr>";
  24.  
  25. while($row = mysql_fetch_assoc($wynik))
  26. {
  27. echo "<tr>";
  28. echo "<td>" . $row['login'] . "</td>";
  29. echo "<td>" . $row['haslo'] . "</td>";
  30. echo "<td>" . $row['mail'] . "</td>";
  31. echo "<td>" . $row['imie'] . "</td>";
  32. echo "<td>" . $row['nazwisko'] . "</td>";
  33. echo "</tr>";
  34. }
  35. echo "</table>";
  36. }
  37. ?>



i jest prawie ok, z tym, że nowo dodany rekord się nie pokaże sam automatycznie tylko dopiero wtedy jak zmienię którąś opcję select.. może ktoś by to umiał przerobic?


--------------------
Go to the top of the page
+Quote Post
Korab
post 1.07.2012, 14:47:57
Post #6





Grupa: Zarejestrowani
Postów: 202
Pomógł: 36
Dołączył: 10.06.2011
Skąd: Dokąd

Ostrzeżenie: (0%)
-----


Tu wchodzi do gry funkcja setInterval().
Go to the top of the page
+Quote Post
miras
post 1.07.2012, 14:51:32
Post #7





Grupa: Zarejestrowani
Postów: 1 004
Pomógł: 9
Dołączył: 18.01.2011
Skąd: Siedlce

Ostrzeżenie: (30%)
XX---


niestety niewiele mi to mówi, z tego, co szukałem - też nic sensownego nie znalazłem, wiem, że jest to 'błaganie o gotowca', ale jakbyś mógł mi to zastosować w powyższym kodzie to byłbym niezmiernie wdzięczny..


--------------------
Go to the top of the page
+Quote Post
Korab
post 1.07.2012, 15:13:43
Post #8





Grupa: Zarejestrowani
Postów: 202
Pomógł: 36
Dołączył: 10.06.2011
Skąd: Dokąd

Ostrzeżenie: (0%)
-----


Druga strona w Google:
http://javascript.about.com/od/reference/g/ssetinterval.htm
Oto co tam znalazłem (po małej przeróbce):

[JAVASCRIPT] pobierz, plaintext
  1. var coo = document.getElementsByName("rekord");
  2. var co = co[0];
  3. intervalID = window.setInterval(showPart(co.value), 500);
[JAVASCRIPT] pobierz, plaintext


To wsadź sobie w HEAD.

Ten post edytował Korab 1.07.2012, 15:14:44
Go to the top of the page
+Quote Post
miras
post 1.07.2012, 15:31:23
Post #9





Grupa: Zarejestrowani
Postów: 1 004
Pomógł: 9
Dołączył: 18.01.2011
Skąd: Siedlce

Ostrzeżenie: (30%)
XX---


Wrzuciłem jak mówiłeś w head plik index.php wygląda tak:

  1. <head>
  2.  
  3. <script type="text/javascript">
  4. var coo = document.getElementsByName("rekord");
  5. var co = co[0];
  6. intervalID = window.setInterval(showPart(co.value), 5);
  7. <script type="text/javascript" src="wybor.js"></script>
  8.  
  9.  
  10.  
  11. </head>
  12.  
  13. <strong>Wybierz część</strong>
  14. <select name="rekord" onchange="showPart(this.value)">
  15. <option value="1">Lusterko</option>
  16. <option value="2">Opony letnie</option>
  17. <option value="3">Katalizator</option>
  18. </form>
  19. <br />
  20. <div id="informacja">Opis wybranej części:</div>
  21.  
  22. </body>
  23. </html>


ale zamierzonego efektu nie osiągnąłem..


--------------------
Go to the top of the page
+Quote Post
Korab
post 1.07.2012, 15:38:24
Post #10





Grupa: Zarejestrowani
Postów: 202
Pomógł: 36
Dołączył: 10.06.2011
Skąd: Dokąd

Ostrzeżenie: (0%)
-----


Kolejność wykonywania skryptów ma znaczenie. Zamień je miejscami.
Go to the top of the page
+Quote Post
miras
post 1.07.2012, 15:41:54
Post #11





Grupa: Zarejestrowani
Postów: 1 004
Pomógł: 9
Dołączył: 18.01.2011
Skąd: Siedlce

Ostrzeżenie: (30%)
XX---


Teraz mam tak i nadal brak efektu...

  1. <head>
  2. <script type="text/javascript" src="wybor.js"></script>
  3. <script type="text/javascript">
  4. var coo = document.getElementsByName("rekord");
  5. var co = co[0];
  6. intervalID = window.setInterval(showPart(co.value), 500);
  7. </head>


--------------------
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 15.06.2025 - 15:06