Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [jQuery] Dynamiczne odswieżanie strony
Forum PHP.pl > Forum > Po stronie przeglądarki > JavaScript
siwek
Mam taką bibliotekę jQ:
http://wklej.org/id/427502/

Taki skrypt w <head>
  1. <script type="text/javascript">
  2. // <![CDATA[
  3. $(document).ready
  4. (
  5. function()
  6. {
  7. $("a[rel*='/includes']").livequery
  8. (
  9. 'click',
  10. function()
  11. {
  12. $.ajax
  13. (
  14. {
  15. url: $(this).attr('rel'),
  16. success: function (msg)
  17. {
  18. $('#response1').replaceWith('<div id="response1">'+msg+'<div>');
  19. }
  20. }
  21. );
  22. return false;
  23. }
  24. );
  25. }
  26. );
  27. // ]]>
  28. </script>

Dzięki temu skryptowi kiedy użytkownik przechodzi na dowolną podstronę odświeża się tylko dany jej element w tym przypadku jest to miejsce na informacje. Niestety, kiedy użytkownik ponownie odświeży stronę to automatycznie pojawia się strona główna. Wie ktoś co jest nie tak? Użytkownik powinien po odświeżeniu dalej zostać na obecnej podstronie. Kiedy pokaże się źródło to również cały czas widać tekst ze strony głównej.

Takie coś mam w elemencie odświeżania:

  1. <div id="response1">
  2. <?php
  3. if (file_exists('./includes/'.trim(strip_tags(basename($_GET["includes"]))).'.php'))
  4. {
  5. include('./includes/'.trim(strip_tags(basename($_GET["includes"]))).'.php');
  6. }
  7. else
  8. {
  9. include('./includes/news.php');
  10. }
  11. ?>
  12. </div>

zegarek84
gdyż nie zmienia Ci się window.location - ale jeśli zmienisz całe to przeładujesz stronę [czego nie chcesz]...

musisz przechowywać gdzieś informację o aktualnie otwartej stronie które będą dostępne po przeładowaniu strony - do wyboru masz:
1) zmianę wartości window.location.hash - zmieni się adres ale strona sie nie przeładuje - po odświeżeniu masz adres też z tym hash'em [więc po odświeżeniu - czyli pierwszym wejściu na strone możesz sprawdzać wartość hasza i go obsłużyć] - ale dodawanie haszy bywa czasami kłopotliwe wiec nie polecam
2) zapisywać informacje o aktualnej stronie w cookies i z niego odczytywać - mało praktyczne jeśli ktoś ma kilka kart otwartych gdyż wszędzie masz dostępną tylko jedną zmienną
3) podobne rozwiązanie do pierwszego i polecane tutaj przeze mnie to skorzystanie z window.name - przy ładowaniu strony sprawdzasz jego wartość i obsługujesz [analogia do odświeżenia strony] - podczas zmiany adresu zmieniasz wartość window.name -> łap linka Session variables without cookies
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.