Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP][MySQL][AJAX]Pokazywanie nowych wyników bez odświeżania
Forum PHP.pl > Forum > Przedszkole
Pudi
Witam ściągnąłem sobie pasek z przewijającymi się newsami(Link do skryptu) i mam pytanie jak zrobić żebym mógł dodawać nowe wiadomości do niego najlepiej do bazy myql a użytkownicy którzy to oglądają widzieli nowe wiadomości bez odświeżania strony?
nospor
1) Zakładam, że do bazy rekordy umiesz wkładać, oraz czytać z bazy
2) Oblukaj, czy ten skrypt pozwala dynamicznie dodawać kolejne newsy - patrz jego dokumentacja
3) Jeśli punkt 2 jest ok, to ajaxem lataj po nowe rekordy i dodawaj do tego skryptu.
Pudi
Z tego co tam wynalazłem wyświetla to za jako html
  1. <h2>Latest News</h2>
  2. <ul id="no-js-news">
  3. <li class="news-item">jQuery News Ticker now has support for multiple tickers per page!</li>
  4. <li class="news-item">jQuery News Ticker now has support right-to-left languages!</li>
  5. <li class="news-item">jQuery News Ticker now has support for loading content via an RSS feed!</li>
  6. <li class="news-item">jQuery News Ticker now has an optional fade effect between items!</li>
  7. <li class="news-item">New updates have been made to jQuery News Ticker! Check below for more details!</li>
  8. <li class="news-item">jQuery News Ticker is now compatible with jQuery 1.3.2! See below for further details and for latest download.</li>
  9. <li class="news-item">Further updates to jQuery News Ticker are coming soon, come back soon for more details.</li>
  10. </ul>

Albo źle szukam ;/
nospor
Tyle to i ja znalazłem - lezy do na stronie głównej- trudno nie znaleźć.
Ty miałeś poszukać głebiej, może w jakiejś dokumentacji czy coś.

A jak się nie da, to poprostu kasować aktualny obiekt i tworzyć na nowo kolejny ze świeża listą.
Pudi
Mógłby mnie ktoś nakierować gdzie szukać jakiegoś przykładu, bo nie mogę niczego znaleźć.
Z góry dziękuje
mortus
Skrypt sam w sobie nie posiada takiej możliwości, jednak Twój problem to kwestia kilku linijek kodu JS z użyciem setInterval i jQuery-owej metody $.ajax() lub jej modyfikacji $.get(), $.post(). Trzeba robić tak, jak pisał nospor.
Pudi
Super teraz dziala ale pojawia się nowy problem jak zrobić by nie pobierało cały czas tego smego?

  1. <head>
  2. <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
  3. <script type="text/javascript" src="parse.js"></script>
  4. </head>
  5.  
  6. <body>
  7. <ul id="container">
  8.  
  9. </ul>
  10.  
  11. <script type="text/javascript">
  12.  
  13. function load(url, callback) {
  14. var xhr;
  15.  
  16. if(typeof XMLHttpRequest !== 'undefined') xhr = new XMLHttpRequest();
  17. else {
  18. var versions = ["Microsoft.XmlHttp",
  19. "MSXML2.XmlHttp",
  20. "MSXML2.XmlHttp.3.0",
  21. "MSXML2.XmlHttp.4.0",
  22. "MSXML2.XmlHttp.5.0"];
  23.  
  24. for(var i = 0, len = versions.length; i < len; i++) {
  25. try {
  26. xhr = new ActiveXObject(versions[i]);
  27. break;
  28. }
  29. catch(e){}
  30. } // end for
  31. }
  32.  
  33. xhr.onreadystatechange = function() {
  34. if((xhr.readyState < 4) || xhr.status !== 200) return;
  35. callback(xhr);
  36. };
  37.  
  38. xhr.open('GET', url, true);
  39. xhr.send('');
  40.  
  41. }
  42.  
  43. setInterval(function() {
  44.  
  45.  
  46.  
  47. load('emails.php', function(xhr) {
  48. var response = JSON.parse(xhr.responseText);
  49. var container = document.getElementById('container');
  50.  
  51. for(var i = 0, len = response.length; i < len; i++) {
  52. container.innerHTML += '<li><strong>' + response[i].id + '</strong> : ' + response[i].tresc + '</li>';
  53. }
  54. });
  55.  
  56. }, 10000);
  57.  
  58. </script>
  59.  
  60. </body>
  61. </html>
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.