Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: ciasteczka odczyt w JavaScript
Forum PHP.pl > Forum > Po stronie przeglądarki > JavaScript
Artur.M
Na pierwszej stronie wysłałem ciasteczko używająć php
Kod

setcookie("ciasteczko","100",time()+3600*1);


Następnie linkie przeszedłem na kolejną stronę. I na tej właśnie stronie chciałbym móc odwołać się do tego co zostało wysłane w ciasteczku. W php nie było by problemu ale mi zależy na tym aby napisać to w JavaScript.

Mam już taki kod:
Kod
document.cookie="cookie1=ciasteczko";
var c= document.cookie;
alert(c);


Wyświetlą się wtedy wszystkie dane na temat tego ciasteczka a ja potrzebuję tylko jego wartość
czyli w tym wypadku 100 .
Prubowałem takie coś var c= document.cookie.value;
Ale nie daje to pożądanego efektu.

Może ma ktoś jakiś pomysł. Bardzo mi zależy żeby to było w JS.
dasko
Po pierwsze, wszystkie ciasteczka w JS przechowywane są w postaci jednego ciągu - document.cookie w takim ukladzie:
Kod
nazwa=wartosc;expires=data;path=path;domain=domain;nazwa2=wartosc2 ... i tak dalej...

Czyli aby odczytac wartosc danego ciastka mozna zrobic tak:
Kod
// nazwa twojego ciastka
var nazwa = 'ciasteczko';

// pozycja początku nazwy ciastka w document.cookie
var start = document.cookie.indexOf( nazwa + '=' );

// pozycja początku wartości ciastka
var posV = start + nazwa.length;

//pozycja średnika kończącego parę nazwa=wartosc
var end = document.cookie.indexOf( ';', value );
if(end == -1) end = document.cookie.length;

// wartosc ciastka
var cookieValue = unescape( document.cookie.substring( posV, end ) );


No i generalnie to tyle smile.gif zmienna cookieValue to wartosc twojego ciastka biggrin.gif Kodu nie sprawdziłem, ale powinno działać. W razie problemów pisz.
FiDO
A najlepiej zamknac to w funkcje, zeby sie przyjemniej uzywalo..
Gotowe funkcje mozna znalezc na googlach pod haslem "getCookie javascript"
Artur.M
Już znalazłem właśnie taką funkcję w której był odczyt, zapis i kasowanie ciasteczek. Temat zaczołem myśląc że da się to jakoś króciutko zrobić(jedną linijką).
piechnat
Cytat(Artur.M @ 2005-03-28 18:17:56)
Temat zaczołem myśląc że da się to jakoś króciutko zrobić(jedną linijką).

w jednej lini:

Kod
function getCookie(n){
  return(n=document.cookie.match('(^| )'+n+'(=([^;]*)|;)'))?unescape(n[3]):false
}
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.