ForumCała strona

Nawigacja

Aktualnie online

Gości online: 10

Użytkowników online: 0

Łącznie użytkowników: 25,405
Najnowszy użytkownik: kipolas

Logowanie

Nazwa użytkownika

Hasło



Zarejestruj się

Odzyskaj hasło

Shoutbox

Musisz zalogować się, aby móc dodać wiadomość.

JazOOn
25.06.2025 23:43:19
Dziadziejemy jantom...

jantom
23.06.2025 21:37:31
Z ciekawo?ci pogrzeba?em w historii i jest gorzej ni? my?la?em. Skórka Nadzieja ma ju? 17 lat.

jantom
23.06.2025 21:33:12
... troch? zasiedzia?o Wink

jantom
23.06.2025 21:32:38
Cecha tego, jak z 20+ lat temu pisano strony - tabelki wsz?dzie, szczególnie do tworzenia uk?adów stron. PF d?ugo by? wierny tej tradycji. A obecny szablon Supportu napisa?em z 15 lat temu i chyba mu

Zbigniew@
22.06.2025 17:50:03
Dlaczego forum jest dost?pne tylko dla 10% ludzi? Poniewa? wi?kszo?? osób korzysta z internetu na urz?dzeniach mobilnych.

Pobierz now? wersj?
Pobierz podr?cznik
Zobacz inne oficjalne Supporty
Statystyki supportu
PHP-Fuson PL na Facebooku

RSS

Polecamy hosting SferaHost.pl

Zobacz temat

 Drukuj temat
Panel losowy artyku? AJAX
kefirek
Ostatnio zacz??em si? bawi? w AJAX i zrobi?em prosty panel z losowym artyku?em. Co 3s jest losowany nowy artyku?. Oczywi?cie artyku? zmienia si? bez prze?adowania.

Daje kod mo?e si? komu? przyda.
Wklejamy taki kod w panel.
Pobierz kod źródłowy  GeSHi: PHP
  1.  
  2. openside("Losowy artyku? AJAX");
  3. ?>
  4.  
  5. <script type="text/javascript" language="javascript">
  6.  
  7. var http_request = false;
  8. function makeRequest(url) {
  9.  
  10. http_request = false;
  11. if (http_request.overrideMimeType) {
  12. http_request.overrideMimeType('Content-Type: image/png');
  13. }
  14.  
  15. if (window.XMLHttpRequest) { // Mozilla, Safari,...
  16. http_request = new XMLHttpRequest();
  17. if (http_request.overrideMimeType) {
  18. http_request.overrideMimeType('text/xml');
  19. }
  20. } else if (window.ActiveXObject) { // IE
  21. try {
  22. http_request = new ActiveXObject("Msxml2.XMLHTTP");
  23. } catch (e) {
  24. try {
  25. http_request = new ActiveXObject("Microsoft.XMLHTTP");
  26. } catch (e) {}
  27. }
  28. }
  29.  
  30. if (!http_request) {
  31. alert('Poddaj? si? :( Nie mog? stworzy? instancji obiektu XMLHTTP');
  32. return false;
  33. }
  34. http_request.onreadystatechange = function() { alertContents(http_request); };
  35. http_request.open('GET', url, true);
  36. http_request.send(null);
  37.  
  38. }
  39.  
  40. function alertContents(http_request) {
  41.  
  42. if (http_request.readyState == 4) {
  43. if (http_request.status == 200) {
  44. document.getElementById("test").innerHTML = http_request.responseText;
  45. } else {
  46. alert('Wyst?pi? problem z zapytaniem.');
  47. }
  48. }
  49.  
  50. }
  51.  
  52. idInterwalu = setInterval("makeRequest('../../art.php')", 3000);
  53.  
  54. </script>
  55. <?php
  56. echo "<div id=\"test\" align=\"center\">";
  57. $wynik = dbquery(
  58. "SELECT ta.article_id, ta.article_subject, tac.article_cat_id, tac.article_cat_access FROM ".DB_ARTICLES." ta
  59. INNER JOIN ".DB_ARTICLE_CATS." tac ON ta.article_cat=tac.article_cat_id
  60. ".(iSUPERADMIN ? "" : "WHERE ".groupaccess('article_cat_access'))." AND article_draft='0' ORDER BY RAND() LIMIT 1"
  61. );
  62. if(dbrows($wynik) > 0)
  63. {
  64. $r = dbarray($wynik);
  65. $itemsubject = trimlink($r&#91;'article_subject'&#93;, 23);
  66. echo "<a href='".BASEDIR."articles.php?article_id=".$r&#91;'article_id'&#93;."' title='".$r&#91;'article_subject'&#93;."' class='side'>$itemsubject</a><br />\n";
  67. }else {echo "Brak artyku?ów."; }
  68. echo "</div>";
  69. closeside();
  70.  
Zinterpretowano w sekund: 0.021, wykorzystano GeSHi 1.0.8.10


I na koniec tworzymy plik art.php Kod pliku to
Pobierz kod źródłowy  GeSHi: PHP
  1.  
  2. <?php
  3. require_once "maincore.php";
  4. $wynik = dbquery(
  5. "SELECT ta.article_id, ta.article_subject, tac.article_cat_id, tac.article_cat_access FROM ".DB_ARTICLES." ta
  6. INNER JOIN ".DB_ARTICLE_CATS." tac ON ta.article_cat=tac.article_cat_id
  7. ".(iSUPERADMIN ? "" : "WHERE ".groupaccess('article_cat_access'))." AND article_draft='0' ORDER BY RAND() LIMIT 1"
  8. );
  9. if(dbrows($wynik) > 0)
  10. {
  11. $r = dbarray($wynik);
  12. $itemsubject = trimlink($r&#91;'article_subject'&#93;, 23);
  13. echo "<a href='".BASEDIR."articles.php?article_id=".$r&#91;'article_id'&#93;."' title='".$r&#91;'article_subject'&#93;."' class='side'>$itemsubject</a><br />\n";
  14. }else {echo "Brak artyku?ów."; }
  15. ?>
  16.  
Zinterpretowano w sekund: 0.025, wykorzystano GeSHi 1.0.8.10

i umieszczamy w g?ównym katalogu.
Testowane na IE 7 i Mozilla Firefox i wszystko dzia?a i zmienia si? jak nale?y
 
W?cibski Go??
Dodany dnia 06.09.2025 06:07:49
Pan Kontekstualny

Postów: n^x
Data rejestracji: Zawsze

Polecamy hosting SferaHost.pl
IP: localhost  
ICEK
No nie powiedzia?bym, ?e wszystko jest ok, bo jak sprawdza?em przed chwila jak to dzia?a, to wyskakiwa? komunikat ze strony, ?e cyt.: "Wyst&#177;pi? problem z zapytaniem." Nie wiem czy to tylko u mnie tak czy nie, ale pisze com zaobserwowa? Pfft
Edytowane przez ICEK dnia 30.11.2008 18:15:24
 
www.modlinski.net
bartek124
I za ka?dym razem zapytanie? Nie lepiej od razu wyci?gn?? te par? artyku?ów i wsadzi? w rotator? Wink.

PS. Masz jakie? dobre poradniki o AJAX? albo ogólnie, JavaScript?
userbar_bartek124_net.png mw.gif Nie pomagam na komunikatorach oraz PW!
 
www.bartek124.net
kefirek
ICEK napisa?/a:
No nie powiedzia?bym, ?e wszystko jest ok, bo jak sprawdza?em przed chwila jak to dzia?a, to wyskakiwa? komunikat ze strony, ?e cyt.: "Wyst&#177;pi? problem z zapytaniem." Nie wiem czy to tylko u mnie tak czy nie, ale pisze com zaobserwowa? :P


Zrobi?em tak i teraz nie powinno by? b??du
Taki kod wklejamy w panel

Pobierz kod źródłowy  GeSHi: Javascript
  1.  
  2. openside("name");
  3. ?>
  4.  
  5. <script type="text/javascript" language="javascript">
  6.  
  7. // przechowuje obiekt XMLHttpRequest
  8. var xmlHttp = createXmlHttpRequestObject();
  9. // przechowuje adres i parametry zdalnego serwera
  10. var serverAddress = "../../art.php";
  11.  
  12. // tworzy obiekt XMLHttpRequest
  13. function createXmlHttpRequestObject()
  14. {
  15. // przechowa odwo?_anie do obiektu XMLHttpRequest
  16. var xmlHttp;
  17. // powinno dzia?_aÄ_ dla wszystkich przeglÄ_darek z wyjÄ_tkiem IE6 i starszych
  18. try
  19. {
  20. // pr??buje stworzyÄ_ obiekt XMLHttpRequest
  21. xmlHttp = new XMLHttpRequest();
  22. }
  23. catch(e)
  24. {
  25.  
  26. // zak?_adajÄ_c, ??e IE6 lub starsza
  27. var XmlHttpVersions = new Array("MSXML2.XMLHTTP.6.0",
  28. "MSXML2.XMLHTTP.5.0",
  29. "MSXML2.XMLHTTP.4.0",
  30. "MSXML2.XMLHTTP.3.0",
  31. "MSXML2.XMLHTTP",
  32. "Microsoft.XMLHTTP");
  33. // sprawdza ka??dy prog id a?? kt??ry?_ zadzia?_a
  34. for (var i=0; i<XmlHttpVersions.length && !xmlHttp; i++)
  35. {
  36. try
  37. {
  38. // pr??buje stworzyÄ_ obiekt XMLHttpRequest
  39. xmlHttp = new ActiveXObject(XmlHttpVersions&#91;i&#93;);
  40. }
  41. catch (e) {}
  42. }
  43. }
  44. // zwraca stworzony obiekt albo wy?_wietla komunikat o b?_Ä_dzie
  45. if (!xmlHttp)
  46. alert("B?_Ä_d podczas tworzenia obiektu XMLHttpRequest.");
  47. else
  48. return xmlHttp;
  49. }
  50.  
  51. // asynchroniczne wywo?_anie serwera
  52. function process()
  53. {
  54. // kontynuuje, je?_li xmlHttp nie jest pusty
  55. if (xmlHttp)
  56. {
  57. // pr??buje po?_Ä_czyÄ_ siÄ_ z serwerem
  58. try
  59. {
  60. // prosi o po?_Ä_czenie ze zdalnym serwerem przeglÄ_darki oparte o MozillÄ_
  61. try
  62. {
  63. // generuje b?_Ä_d (kt??ry jest ignorowany) je?_li przeglÄ_darka nie jest MozillÄ_
  64. netscape.security.PrivilegeManager.enablePrivilege('UniversalBrowserRead');
  65. }
  66. catch(e) {} // ignoruje b?_Ä_d
  67. // rozpoczyna dostÄ_p do serwera
  68. xmlHttp.open("GET", serverAddress, true);
  69. xmlHttp.onreadystatechange = handleRequestStateChange;
  70. xmlHttp.send(null);
  71. }
  72. // w razie niepowodzenia wy?_wietla komunikat o b?_Ä_dzie
  73. catch (e)
  74. {
  75. alert("Nie mogÄ_ nawiÄ_zaÄ_ po?_Ä_czenia z sewerem:\n" + e.toString());
  76. }
  77. }
  78. }
  79.  
  80. // funkcja wywo?_ywana przy zmianie statusu ??Ä_dania HTTP
  81. function handleRequestStateChange()
  82. {
  83. // kiedy readyState ma warto?_Ä_ 4, jeste?_my gotowi do odebrania odpowiedzi z serwera
  84. if (xmlHttp.readyState == 4)
  85. {
  86.  
  87. // kontynuuje tylko, gdy status HTTP ma warto?_Ä_ "OK"
  88. if (xmlHttp.status == 200)
  89. {
  90. try
  91. {
  92. // przetwarza wiadomo?_Ä_ z serwera
  93. handleServerResponse();
  94. }
  95. catch(e)
  96. {
  97. // komunikat o b?_Ä_dzie
  98. alert("WystÄ_pi?_ b?_Ä_d podczas odczytu odpowiedzi: " + e.toString());
  99. }
  100. }
  101. else
  102. {
  103. // wy?_wietla komunikat o statusie
  104. alert("Pojawi?_ siÄ_ problem podczas odbierania danych:\n" +
  105. xmlHttp.statusText);
  106. }
  107. }
  108. }
  109.  
  110. // obs?_uguje odpowied?? otrzymanÄ_ z serwera
  111. function handleServerResponse()
  112. {
  113. // odbiera odpowied?? serwera
  114. var response = xmlHttp.responseText;
  115. // pobiera odwo?_anie do elementu <div> na stronie
  116. myDiv = document.getElementById('myDivElement');
  117. // wy?_wietla rezultat jako HTML
  118. myDiv.innerHTML = "Losowy artykul "
  119. + response + "<br/>";
  120. }
  121.  
  122. idInterwalu = setInterval("process()", 3000);
  123.  
  124. </script>
  125. <div id="myDivElement">
  126. </div>
  127.  
  128.  
  129. <?php
  130. closeside();
  131.  
Zinterpretowano w sekund: 0.009, wykorzystano GeSHi 1.0.8.10


I tworzymy plik art.php i umieszczamy w g?ównym katalogu

PS. Masz jakie? dobre poradniki o AJAX? albo ogólnie, JavaScript?


Mam ksi?zki i przyk?ady z ksi??ek. Na hdd mam w PDF i doc ksi?zki AJAX i JAVASCRIPT.

I za ka?dym razem zapytanie?


Na razie tyle tylko wymy?li?em ale mo?na zrobi? tak ?e pobra? klika losowych artyku?ów umie?ci? je w tablicy javascript i potem za pomoc? setInterval wy?wietla? co jaki? czas artyku? z tablicy. I co jaki? czas ?adowa?o by si? nowe dane do tablicy
Edytowane przez kefirek dnia 30.11.2008 21:03:04
 
Przejdź do forum:
Created by Arox Copyright (C) 2004
Copyright (C) 2004 - 2018 Ekipa PHP-Fusion.pl