Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [jQuery] Dynamiczne odswieżanie strony
siwek
post
Post #1





Grupa: Zarejestrowani
Postów: 1
Pomógł: 0
Dołączył: 28.11.2010

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


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>

Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 1)
zegarek84
post
Post #2





Grupa: Zarejestrowani
Postów: 1 332
Pomógł: 294
Dołączył: 12.10.2008
Skąd: Olkusz

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


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
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 26.09.2025 - 03:44