Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Zczytywanie wartości hash z URL
Forum PHP.pl > Forum > Po stronie przeglądarki
arek50
Mam pewien problem. Chodzi o to, że chcę zczytać dane po hashu z url, a PHP mi tego nie oferuje i muszę wszystko przerobić na Javascript, a nie mam pojęcia jak to zrobić.

W PHP miałem taki kod, jak poniżej. Czyli skrypt sprawdzał pokolei, czy jest cookies i jeśli jest to wrzucał go w $zmienna, jeśli nie ma, a jest odpowiedniej długości ciąg znaków w URL to wrzucał określoną część z URLa do zmiennej. Jeśli żadnej z tych dwóch opcji nie ma to daje mój ciąg znaków.

  1. <?php ob_start();
  2. $ciag = 9;
  3. $nas = $_SERVER['REQUEST_URI'];
  4. $nas1 = strlen($nas) - $ciag - 2;
  5. $login = substr($nas,$ciag, $nas1);
  6. if (isset($_COOKIE['ciacho'])) {
  7. $zmienna = $_COOKIE['ciacho'];
  8. } elseif ($nas1 > 4)
  9. {
  10. $zmienna = $login;
  11. }
  12. else
  13. {
  14. $zmienna = 'mojtekst';
  15. }
  16. setcookie('ciacho', $zmienna, time() +(3600*24), '/' );
  17. ?>


Jednak takie rozwiązanie mi nie pasuje i chciałbym mieć zczytywanie danych po hashu z URL z zachowaniem takiej samej kolejności. Tu się kłania Javascript.

Skrypt musi sprawdzać pokolei:
1. czy jest cookies i jak jest to podstawić do zmiennej
2. jeśli nie to zczytuje dane z hasha i podstawiam do zmiennej
3. żaden z powyższych to wstawiam własny ciąg znaków pod hash

a zmienną już mogę podstawić, gdzie chcę.
Cookies 24 godziny, jak wyżej.

Samo zczytywanie z hasha nie jest takie trudna, ale jak zrobić resztę.



Mam kilka części tego skryptu, ale nie wiem, jak to połączyć, aby działało:

Zczytywanie hash z url, ale bez podstawienia do zmiennej o nazwie "zmienna"
  1. <script type="text/javascript">
  2. function init()
  3. { if (document.location.hash == "")
  4. {
  5. document.getElementById("url").href = 'mojtekst';
  6. } else {
  7.  
  8.  
  9. document.getElementById("url").href=window.location.hash.substring(1);
  10.  
  11. <!-- substring(1); usuwa "#" -->
  12. }
  13. }
  14.  
  15. window.onload=init;


zapisanie i odczytanie cookies:
  1. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
  2. <head>
  3. <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
  4. <title>Ciacho</title>
  5. </head>
  6.  
  7. <body>
  8. <script type="text/javascript">
  9. var tresc='Treść pierwszego cookie'; //ustalamy treści cookie
  10. tresc=escape(tresc); //kodujemy tekst (w tym przykładzie nie jest to niezbędne)
  11. document.cookie="ciastko1="+tresc; //tworzymy cookie o nazwie ciastko1
  12.  
  13. var waznosc=new Date(); //tworzymy nowy obiekt zawierający datę
  14. var tresc='Treść stałego cookie'; //ustawianie treści cookie
  15. tresc=escape(tresc); //kodowanie tekstu
  16. waznosc.setTime(waznosc.getTime()+1000*60*60*24*7); //ustawianie daty wygaśnięcia (na 7 dni)
  17. document.cookie="ciastko2=" + tresc + ";expires=" + waznosc.toGMTString(); //tworzy cookie, parametr expires oznacza termin wygaśnięcia
  18.  
  19. function czytaj_ciacho(nazwa)
  20. {
  21. nazwa+="="; //uzupełnia nazwę
  22. startCookie=document.cookie.indexOf(nazwa); //sprawdza czy istnieje cookie o podanej nazwie
  23. if (startCookie==-1) {return ""} //jeżeli nie istnieje
  24. startCookie+=nazwa.length; //początek treści cookie
  25. if (document.cookie.indexOf(";",startCookie)==-1) //jeżeli jest więcej cookie
  26. {
  27. koniecCookie=document.cookie.length; //jeżeli nie ma podstawia jako koniec cookie, koniec całego tekstu
  28. }
  29. else
  30. {
  31. koniecCookie=document.cookie.indexOf(";",startCookie); // podstawia pod koniec miejsce występowania ";" (czyli początek następnego cookie)
  32. }
  33. textCookie=document.cookie.substring(startCookie,koniecCookie); //kopiuje treść cookie
  34. textCookie=unescape(textCookie); //rozkodowuje treść
  35. return textCookie; //zwraca wartość
  36. }
  37. document.write("lol");
  38. document.write(czytaj_ciacho("ciastko1"));
  39.  
  40. </body>
  41. </html>


Ja chce móc użyć w treści lub linku

document.write("zmienna");

i to w kilku miejscach
Dlatego muszę mieć info z hasha w zmiennej.
Na koniec ewentualnie znalazłem taki skrypt i on również mógłby pomóc, ale o ajaxie nie mam pojęcia:
http://www.queness.com/post/328/a-simple-a...-with-jqueryphp

Jak to wszystko połączyć ze sobą, aby to zadziałało, jak potrzebuję.
erix
Cytat
Chodzi o to, że chcę zczytać dane po hashu z url, a PHP mi tego nie oferuje i muszę wszystko przerobić na Javascript, a nie mam pojęcia jak to zrobić.

Chyba w tym tygodniu był podobny temat, wystarczy poszukać.
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.