Autor Zpráva
maks
Profil
Ahoj,
chtěl bych se zeptat, jak by bylo možné zapsat v JS totéž, co se dá v PHP zapsat tímto zápisem:
$cookies = array();
foreach($_COOKIE as $name => $value) {
	if (substr($name, 0, 4) == 'test') {
		$value = explode('|', $value);
		$cookies[$value[0]] = $value[0];
	} 
}
var_dump($cookies);


Konkrétně vytáhnout všechny kukiny, které se jmenují "test%" a zapsat je do pole, s kterým budu pak dál pracovat.

JS má práci s cookies nějak složitou, skoro až zbytečně.. Pomůžete?

Děkuji.
Radek9
Profil
http://www.jakpsatweb.cz/javascript/priklady/cookie-precteni.html

Příště laskavě hledej.
maks
Profil
Radek9:
o tomhle samozřejmě vím. To vypíše název jedné cookie, která je v parametru funkce. Nevytvoří mi pole všech dle nějakého filtru, kterým je tu substr z klíče z pole.

Jde spíše o to, že javascript nemá ani foreach. Našel jsem pouze náhradu pomocí for (a to takovou, že tam byla pouze hodnota, ne klíč z pole). A tak celkově, nejsem javascriptař. Jestli to z odkazu (zhlédl jsem i ostatní na jakpsatweb týkající se cookies) je zřejmé, tak se omlouvám. Já to tam nějak nevidím.
Radek9
Profil
maks:
Pro procházení objektu se používá cyklus for in:
for(x in pole){
  alert(pole[x]);
}
Trejpa
Profil
maks:
Cookies do pole.
maks
Profil
Trejpa:
děkuji.

Už jsem na to metodou pokus omyl přišel, i když tenhle odkaz jsem nějak minul. I tak vám oběma děkuji.
maks
Profil
Ještě bych měl jeden dotaz k tomuto. Potřeboval bych, aby byla cookie platná po celé doméně (tvořím ji v subdoméně, používat ji budu i na jiných subdoménách). Vycházel jsem z http://www.comptechdoc.org/independent/web/cgi/javamanual/javacookie.html, v ostatních zdrojích se o domain píše zřídka, na JPW vůbec.

Našel jsem parametr domain, ale
document.cookie = "test1=hodnota1; expires=" + datum.toGMTString() + "; domain=example.com"; 
// místo example.com jsem zkoušel i http://example.com, www.example.com i .example.com.
Na jiné stránce (na stejné subdoméně) se cookie nevypíše. Vypisují ji PHPkem, ale to asi nevadí.

Vaše odpověď

Mohlo by se hodit

Neumíte-li správně určit příčinu chyby, vkládejte odkazy na živé ukázky.
Užíváte-li nějakou cizí knihovnu, ukažte odpovídajícím, kde jste ji vzali.

Užitečné odkazy:

Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0