Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [php][javascript] Losowe wyswietlanie danych bez koniecznosci odswiezania strony
-tomii-
post
Post #1





Goście







witam ponownie - chcialbym się Was poradzić jeszcze w jednej kwestii - pobieram sobie dane z bazy np.:
  1. <?php
  2. include("funkcje/iso.php");
  3. $zapytanie = mysql_query ("SELECT id_ulica, ulica, kontakt FROM $mysql_tabela WHERE status='s' ORDER BY rand() LIMIT 1") or die ("Błąd w zapytaniu");
  4. while ($rekord = mysql_fetch_array ($zapytanie)) {
  5. $ulica = $rekord[0];
  6. $kontakt = $rekord[1];
  7. ...
  8. print(iso("$ulica"));
  9. ...
  10. ?>

w taki sposob wyswietla mi losowo ale musze za kazdym razem odswiezyc strone - lub kliknac ponownie w jakis odnosnik - a jak zrobić aby to automatycznie np. co 5 sek. oswizalo sie? z javascript u mni ekiepsko wiec moze cos poradzicie?
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 19)
-Wieviór-
post
Post #2





Goście







  1. <?php
  2. <script>setTimeout('document.location = "strona.php"', 100);</script>
  3. ?>


Gdzie "100" to czas w milisekundach.
Go to the top of the page
+Quote Post
-tomii-
post
Post #3





Goście







dzięki Wieviór ale nie do konca o to mi chodziło - bo stsujac ta metode to odswieza mi cala strone i np. jak ktos czyta w srodku to wywala go spowrotem na gore i ten cholerny odglos przeladowania strony mnie denerwuje (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg)

a czy da sie zrobic to np. do okreslonej czesci serwisu? np. jakiejs tabeli? zeby tylko ja odswiezalo a nie cala strone? - stronki nie mam w ramkach. Chodziło mi o coś podobnego do: (lewa gorna strona - reklamy sie zmieniaja losowo) link
Go to the top of the page
+Quote Post
drPayton
post
Post #4





Grupa: Zarejestrowani
Postów: 890
Pomógł: 65
Dołączył: 13.11.2005
Skąd: Olsztyn

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


AJAX:
Zrób funkcję JS , która będzie pobierała te dane z bazy (czyli to co napisałeś w osobnym pliku php). Na stronie, np div o określonym id a funkcja JS metodą innerHTML wstawia do niego odpowiedź php. I na koniec skryptu (strony) daj fragmencik js
  1. setInterval('moja funkcja', 1000)

Gdzie ta druga wartość to czas (w milisekundach), co który ma być wywoływana funkcja zdefiniowana w pierwszym parametrze.

Ten post edytował drPayton 8.09.2007, 14:31:24
Go to the top of the page
+Quote Post
mrjozo
post
Post #5





Grupa: Zarejestrowani
Postów: 142
Pomógł: 3
Dołączył: 27.06.2007

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


Poczytaj o AJAX.... i JavaScript

Do elementu na stronie możesz sie odwołać poprzez:

element = document.getElementById(id);

http://developer.mozilla.org/en/docs/DOM:d....getElementById
Go to the top of the page
+Quote Post
-tomii-
post
Post #6





Goście







ehhhhhh za ciezki na razie dla mnie AJAX - ciezko od razu to zrobic - czy ktos moglby jakiegos tutka podeslac lub pokazac jak by to mialo wygladac? po ok 1,5 godz. nadal ciezko mi jest cos dzialajacego wyskorobac ...
Go to the top of the page
+Quote Post
mrjozo
post
Post #7





Grupa: Zarejestrowani
Postów: 142
Pomógł: 3
Dołączył: 27.06.2007

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


Skorzystaj z bliblioteki: http://advajax.anakin.us/index-pl.htm (dołącz do Twojej strony)

Tam gdzie chcesz mieć ogłoszenie dodaj:

Kod
<div id="ogloszenia"></div>

Funckja JS:

Kod
function changeContent() {

advAJAX.get({
    url: "http://twojastrona.pl/strona.php",
    onSuccess : function(obj) {
document.getElementById('ogloszenia').innerHTML = obj.responseText;
}
});

}


Na końcu strony skrypt:

Kod
setInterval('changeContent', 1000);


Ten post edytował mrjozo 8.09.2007, 16:09:23
Go to the top of the page
+Quote Post
-tomii-
post
Post #8





Goście







no to teraz wyjde na kompletnego glupka - az wstyd no ale musze zapytac: mam tak: index.html - gdzie wstawilem:
  1. <script type="text/javascript" src="advajax.js"></script>
  2.  
  3. <script type="text/javascript">
  4. function changeContent() {
  5.  
  6. advAJAX.get({
  7. url: "os.php",
  8. onSuccess : function(obj) {
  9. document.getElementById('ogloszenia').innerHTML = obj.responseText;
  10. }
  11. });
  12.  
  13. }
  14.  
  15. setInterval('changeContent', 1000);
  16. </head>

w pliku os.php zapisalem sobie tebele w ktorej wynonuja sie zapytania do bazy:
  1. <table border="0" width="90%" cellspacing="0" cellpadding="0">
  2. <?php
  3. include("tabela.php");
  4. include("mysql_connect.php");
  5. include("iso.php");
  6. $zapytanie = mysql_query ("SELECT id_ulica, ulica FROM $mysql_tabela WHERE status='s' ORDER BY rand() LIMIT 1") or 
  7. die ("Błąd w zapytaniu");
  8. while ($rekord = mysql_fetch_array ($zapytanie)) {
  9. $id_ulica = $rekord[0];
  10. $ulica = $rekord[1];
  11. ?>
  12. <tr>
  13. <td class="normal" colspan="2">
  14. <p align="right">
  15. <img border="0" src="images/6_1.gif" width="1" height="14"></td>
  16. </tr>
  17. <tr>
  18. <td class="normal" colspan="2">
  19. <img border="0" src="images/napisy/ulica.gif" width="94" height="9">: 
  20. <font color="#3487E4"><i> <?php print(iso("$ulica")); ?></i></font></td>
  21. </tr>
  22. <tr>
  23. <td class="normal" colspan="2">
  24. <p align="right">
  25. <img border="0" src="images/6_1.gif" width="1" height="3"></td>
  26. </tr>
  27. <tr>
  28. <td class="normal" width="3%">
  29. <img border="0" src="images/kropka_c.gif" width="4" height="4"></td>
  30. <td class="normal" width="97%"><font color="#000000">
  31. <?php echo"<a href=ulica.html?id_ulica=$id_ulica><font color=\"#000000\">więcej informacji</font></a>"; ?></font></td>
  32. </tr>
  33. <tr>
  34. <td class="normal" colspan="2">
  35. <p align="right">
  36. <img border="0" src="images/6_1.gif" width="1" height="6"></td>
  37. </tr>
  38. <?php 
  39. } 
  40. ?>
  41. </table>


w pliku index.html w miejscu (o ile dobrze zrozumialem) gdzie ma sie pojawic plik os.php wtawiłem
  1. <div id="ogloszenia"></div>


no i klapa - nie działa zupełnie - a teraz mozecie po mnie jechac .... (IMG:http://forum.php.pl/style_emoticons/default/sadsmiley02.gif)
Go to the top of the page
+Quote Post
mrjozo
post
Post #9





Grupa: Zarejestrowani
Postów: 142
Pomógł: 3
Dołączył: 27.06.2007

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


Nie wiem jakie błedy są generowane... możesz podać adres strony aby zobaczyć? W konsoli błędów sprawdź czy w JS są jakieś błedy...

Kod
setInterval('changeContent', 1000);


zmień na:

Kod
window.setInterval('changeContent()', 10000);


Spróbuj przed linijką:

Kod
document.getElementById('ogloszenia').innerHTML = obj.responseText;


dać:

Kod
alert(obj.responseText);


aby zobaczyc czy jest cos zwracane...

Ten post edytował mrjozo 8.09.2007, 18:39:17
Go to the top of the page
+Quote Post
-tomii-
post
Post #10





Goście







nic sie nie dzieje nic nie zwraca: link
Go to the top of the page
+Quote Post
-tomii-
post
Post #11





Goście







tam gdzie sa ogloszenia specjalne powinno wyswietlac te ktore spelniaja warunek - a tu nic - sorki ze tak zasmiecam ale musze zalozyc konto ... ;-)
Go to the top of the page
+Quote Post
mrjozo
post
Post #12





Grupa: Zarejestrowani
Postów: 142
Pomógł: 3
Dołączył: 27.06.2007

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


Nie zmieniłeś tej linijki: setInterval('changeContent', 1000); zgodnie z powyzszym...

pozatym tuaj mozesz dać link bezwzględny:

Kod
url: "http://www.paczkat.webd.pl/test/os.php",


PS. na początek możesz umieścić w tym divie jakieś ogłoszenie, gdyż zostenie ono zastąpione dopiero po 10 sek
Go to the top of the page
+Quote Post
drPayton
post
Post #13





Grupa: Zarejestrowani
Postów: 890
Pomógł: 65
Dołączył: 13.11.2005
Skąd: Olsztyn

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


Jeżeli pliki są w tym samym katalogu, to na pewno "coś" jest zwracane. Błąd na pewno był w:
  1. setInterval('changeContent', 1000);

powinno być:
  1. setInterval('changeContent()', 1000);


window przed tym nie jest potrzebne, ale nawiasy bezwzględnie

Ten post edytował drPayton 8.09.2007, 18:59:30
Go to the top of the page
+Quote Post
-tomii-
post
Post #14





Goście







heh działa (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg) dzięki śliczne - tylko jeszcze mam jedno pytanie - czemu najpierw wali komunikat (alert a pozniej dopiero wyswietla wyniki? jak sie tego pozbyc?
Go to the top of the page
+Quote Post
drPayton
post
Post #15





Grupa: Zarejestrowani
Postów: 890
Pomógł: 65
Dołączył: 13.11.2005
Skąd: Olsztyn

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


Wywalić alert. Przecież on miał służyć jedynie sprawdzeniu poprawności pobierania danych, teraz Ci już chyba nie jest potrzebny, co? (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg)

Ten post edytował drPayton 8.09.2007, 19:07:43
Go to the top of the page
+Quote Post
-tomii-
post
Post #16





Goście







heh calkowicie o nim zapomnialem hehe (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg) ok juz wszystko działa tak jak nalezy - zrobie z tego tutka i zamieszcze tu pliki dla innych - dziękuje Wam za cierpliwosc do mojej osoby (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg) i wyrozumialosc (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg)

dzięki (IMG:http://forum.php.pl/style_emoticons/default/exclamation.gif) ! [} [} [} [} browarki dla was (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg)
Go to the top of the page
+Quote Post
-dred-
post
Post #17





Goście







Czesc wszystkim - dobrze ze trafilem na ten temat bo bardzo mis ie przydal - chciałem zapytac Was o jedna rzecz - nie iwem jak autor sobie z tym poradzil ale ja jakoś nie moge. Zrobiłem wszystko tak samo jak w temacie tylko mam problem z wyswietlaniem prostych polskich liter ęśćą itp nawet z ł. Czy możecie mi doradzić lub pomoc jak to zrobic? Mysle ze wiele osob pomoze ten temat bo w sumie bardzo fajnie został omówiony ...

pozdrawiam
Go to the top of the page
+Quote Post
mrjozo
post
Post #18





Grupa: Zarejestrowani
Postów: 142
Pomógł: 3
Dołączył: 27.06.2007

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


Ustaw odpowiednie kodowanie dla strony oraz zapisuj strony w odpowiednim kodowaniu (np ISO-8859-2)

Nie napisałeś czy normalnie jeśli wejdziesz na stronę która pobiera dane, taki problem tez występuje, może być to spowodowane problemami z kodowaniem w bazie jeśli z niej pobierasz dane
Go to the top of the page
+Quote Post
-dred-
post
Post #19





Goście







z bazy dobrze mi wyciaga dane i z polskimi znakami - dopiero przez ten skrypt jak wywolam to nie mam polskich znakow ...
Go to the top of the page
+Quote Post
-dred-
post
Post #20





Goście







z bazy dobrze mi wyciaga dane i z polskimi znakami - dopiero przez ten skrypt jak wywolam to nie mam polskich znakow ...
Go to the top of the page
+Quote Post

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

 



RSS Aktualny czas: 22.08.2025 - 22:41