Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [advAjax] Powiadamianie o nowych wpisach itp.
Forum PHP.pl > Inne > Oceny
phpion
Moj poprzedni produkt spotkal sie z ogromny zainteresowaniem winksmiley.jpg wiec napisalem dzis cos nowego. Mianowicie w zalozeniu skrypt ma sluzyc do powiadamiania o nowych wpisach w bazie (tych jeszcze nieautoryzowanych) na zywo, tj. od razu na stronie, bez koniecznosci odswiezania strony.
Oto link do przykladu dzialania skryptu:
http://phpion.com/ajax/uwaga.html
Na serwerze skrypt nie pobiera danych z bazy (admin chyba by mnie zabil biggrin.gif), a po prostu poprzez file() zlicza ilosc linii w pliku tekstowym. Czestotliwosc sprawdzania wynosi 10 sekund (dla testow).
Oto zrodla:
uwaga.html:
  1. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
  2. <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-2">
  3. <style type="text/css">
  4. #uwaga {
  5. font-family: Verdana, Tahoma, sans-serif;
  6. font-size: 12px;
  7. background-color: #FFDE0A;
  8. width: 150px;
  9. position: absolute;
  10. right: 25px;
  11. top: 25px;
  12. padding: 0px;
  13. }
  14. a.hide, a.hide:hover {
  15. font-family: Verdana, Tahoma, sans-serif;
  16. font-size: 10px;
  17. font-weight: bold;
  18. color: #000000;
  19. text-decoration: none;
  20. }
  21. <script language="javascript" type="text/javascript" src="advajax.js"></script>
  22. <script language="javascript" type="text/javascript">
  23. show = '1';
  24.  
  25. function hide()
  26. {
  27. document.getElementById('uwaga').style.visibility = "hidden";
  28. }
  29.  
  30. function clos()
  31. {
  32. document.getElementById('uwaga').style.visibility = "hidden";
  33. show = '0';
  34. }
  35.  
  36. function play()
  37. {
  38. document.all.base.src = "sound.wav";
  39. }
  40.  
  41. function check()
  42. {
  43. if (show == '1')
  44. {
  45. delay = 10;
  46.  
  47. advAJAX.get({
  48. url: "uwaga.php",
  49.  
  50. onSuccess : function(obj)
  51. {
  52. if (obj.responseText == "0")
  53. document.getElementById('uwaga').style.visibility = "hidden";
  54. else
  55. {
  56. document.getElementById('uwaga').innerHTML = '<img src="zarowka.png" align="left">Nowych dupereli:<br> ' + obj.responseText + '<div style="position: absolute; right: 4px; top: 0px;"><a href="#" onclick="hide();" class="hide">_</a> <a href="#" onclick="clos();" class="hide">x</a></div>';
  57. document.getElementById('uwaga').style.border = "1px silver solid";
  58. document.getElementById('uwaga').style.padding = "5px";
  59. document.getElementById('uwaga').style.visibility = "visible";
  60. //play();
  61. }
  62. },
  63.  
  64. onError : function(obj)
  65. {
  66. alert("Error: " + obj.status);
  67. },
  68. });
  69.  
  70. setTimeout("check()", delay*1000);
  71. }
  72. else
  73. return false;
  74. }
  75. </head>
  76. <body onload="check();">
  77. <div id="uwaga"></div>
  78. <div id="body">
  79. Lorem Ipsum is simply dummy text (...)
  80. </body>
  81. </html>

oraz uwaga.php
  1. <?php
  2. $file = file("file.txt");
  3. echo count($file);
  4. /*
  5. CREATE TABLE uwaga (
  6. id INT(10) NOT NULL PRIMARY KEY AUTO_INCREMENT, 
  7. tresc VARCHAR(10), 
  8. stan ENUM('0', '1') NOT NULL DEFAULT '0'
  9. );
  10. */
  11.  
  12. $sql = mysql_connect("localhost", "root", "");
  13. mysql_select_db("uwaga", $sql);
  14.  
  15. $q = "SELECT COUNT(id) FROM uwaga WHERE stan='0'";
  16. $q = mysql_query($q);
  17.  
  18. echo mysql_result($q, 0);
  19. ?>

W pozyzszym pliku widac rowniez jak mozna pobierac dane prosto z bazy.
I znowu mam 2 pytania:
1) co zrobic aby skrypt chodzil nie tylko na FF mad.gif (Opera, Konqueror, IE wysiadaja...)
2) jak odegrac dzwiek przy wyswietlaniu diva?
Pozdrawiam smile.gif Moze komus sie spodoba, przyda...

PS: na tym serwerze nie zaobserwujemy zmiany ilosci dupereli ale jesli ktos odpali skrypt u siebie i bedzie zmienial ilosc wpisow w pliku to zobaczy smile.gif
tiraeth
Bez przesady... poprzedni "skrypt" zaakceptowałem ale tego nie akceptuję.... Po co to? Do oceny? Nie wiem co tu oceniać, bo większość to advAjax...

Co do pytań... wiesz gdzie się je zadaje? Na pewno nie na forum Oceny

Kloz'et winksmiley.jpg
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.