Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Powiadomienia
DNMX
post 22.02.2022, 09:38:32
Post #1





Grupa: Zarejestrowani
Postów: 128
Pomógł: 0
Dołączył: 18.09.2021

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


Szukam kawalka kodu (AJAX) ktory obsuzy mi powiadomienia na stronie tak, ze bedzie w petli powiedzmy co 5 sekund pobieral plik mojastrona.pl/powiadomienia.txt ktory przykladowo wyglada tak:
Cytat
alerty:15;powiadomienia:29;

i na widocznym fragmencie strony zmieni odpowiednie numerki
  1. <span id="alerty" class="badge badge-danger badge-counter">15</span>
  2. ....
  3. <span id="pow" class="badge badge-success badge-counter">29</span>

Z góry dzieki!



Edit: Znalazłem taki fragment kodu:
  1. window.addEventListener('load', function()
  2. {
  3. var xhr = null;
  4.  
  5. getXmlHttpRequestObject = function()
  6. {
  7. if(!xhr)
  8. {
  9. // Create a new XMLHttpRequest object.
  10. xhr = new XMLHttpRequest();
  11. }
  12. return xhr;
  13. };
  14.  
  15. updateLiveData = function()
  16. {
  17. var now = new Date();
  18. // Date string is appended as a query with live data.
  19. // for not to use the cached version.
  20. var url = 'powiadomienia.txt';
  21. xhr = getXmlHttpRequestObject();
  22. xhr.onreadystatechange = evenHandler;
  23. // asynchronous requests
  24. xhr.open("GET", url, true);
  25. // Send the request over the network
  26. xhr.send(null);
  27. };
  28.  
  29. updateLiveData();
  30.  
  31. function evenHandler()
  32. {
  33. // Check response is ready or not
  34. if(xhr.readyState == 4 && xhr.status == 200)
  35. {
  36. dataDiv = document.getElementById('alerty');
  37. // Set current data text
  38. dataDiv.innerHTML = xhr.responseText;
  39. // Update the live data every 1 sec
  40. setTimeout(updateLiveData, 1000);
  41. }
  42. }
  43. });
  44.  

ktory dziala ale nie wiem, jak do spana o id="alerty" wrzucic liczbe 15 a do tego z ID pow 29. Pomozecie?

Ten post edytował DNMX 22.02.2022, 10:47:27
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
DNMX
post 24.02.2022, 23:14:56
Post #2





Grupa: Zarejestrowani
Postów: 128
Pomógł: 0
Dołączył: 18.09.2021

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


Ten kod działa tak samo: (1) (1) się nawarstwia. Na razie zastosowałem obejście w postaci metatagu zawierającego to samo co tytuł:
  1. var title = document.querySelector('meta[name="description"]').content;
  2. //Notifications
  3. if(not[0] > 0) {
  4. document.title = "(" + not[0] + ") " + title;
  5. } else {
  6. document.title = title;
  7. }

Działa tak jak trzeba bo liczba powiadomień się nie nawarstwia a po odczytaniu znika.

Zastanawiam się, czy tego fragmentu kodu nie można wykorzystać do przekierowania użytkownika do ekranu logowania gdy skońzy mu się sesja? W pliku mojastrona.pl/powiadomienia.txt który nie jest zwykłym .txt a jest interpretowany przez parser PHP, jest warunek, że jeli user niezalogowany zwraca 0. Próbowałem tam dać:
  1. header("Location /login.php");

czy też:
  1. <meta http-equiv="refresh" content="5; URL=https://www.mojastrona.pl/login.php" />

ale oba powodują tylko to, że zamaist liczby powiadomień wyświetl się "undefined"
Czy można by ten kod wykorzystać również do przekierowania usera do ekranu logowania po wyekspirowaniu sesji?

Ten post edytował DNMX 24.02.2022, 23:22:38
Go to the top of the page
+Quote Post

Posty w temacie


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.05.2024 - 08:07