Autor Zpráva
cink
Profil
Hmm... Ahoj,
moje stránky zatím běží dobře. Ale pro komfort uživatelů jsem chtěl, aby si mohli vybrat barvu pozadí. Moje představa je, že kliknou na tlačítko a vyskočí mu (jako uživateli) prompt. Tam zadá barvu v hex a cookie by to uložilo na určitou dobu. Jakákoli rada mi moc pomůže.
Jo, nesmím zapomenout na živou ukázku.
Předem děkuji
Fisir
Profil
Reaguji na cinka:
Ano, bude to fungovat přesně tak, jak jsi to popsal. Co konkrétně ti nejde? (Hotové řešení tu nedostaneš.)
Přečtení hodnoty cookie JavaScriptem, v PHP se ke čtení cookies používá pole $_COOKIE
Uložení hodnoty cookie JavaScriptem, v PHP se používá funkce setcookie()
cink
Profil
Teď jsem dodělal tlačítka +červená/zelená/modrá a -červená/zelená/modrá
Teď jen potřebuji, aby se ta barva zapamatovala na později.
Ukázka
Fisir
Profil
Reaguji na cinka:
• Přečtení hodnoty cookie JavaScriptem, v PHP se ke čtení cookies používá pole $_COOKIE
• Uložení hodnoty cookie JavaScriptem, v PHP se používá funkce setcookie()
Barva pozadí se mi ale nemění.
cink
Profil
Fisir:
Na opeře i IE mi všechno funguje. (Klikneš na tlačítko ZMĚNA BARVY)
Stránky fungují na javascriptu.
Je nutné mít JS zapnutý.
Bubák
Profil
cink:
Na opeře i IE mi všechno funguje.
Je to jako první Ford, můžete si vybrat libovolnou barvu, pokud to bude černá. Ale ani ta černá se nezapamatuje.
cink
Profil
No právě že se nezapamatuje

#3:
Teď jen potřebuji, aby se ta barva zapamatovala na později.

Nešlo by nějak zjistit barvu, která je navolená (něco jako kapátko v malování) a jako hex zapamatovat na později?
Fisir
Profil
Reaguji na cinka:
Už to funguje. Barvu pozadí zjistíš JavaScriptem element.style.backgroundColor.
cink
Profil
Jak můžu spojit element.style.backgroundColor s cookie?
Cookie (z w3schools.com, do prompt se zadá jméno - místo toho se zjistí barva a místo alertu se změní barva pozadí):
function setCookie(cname, cvalue, exdays) {
    var d = new Date();
    d.setTime(d.getTime() + (exdays*24*60*60*1000));
    var expires = "expires="+d.toGMTString();
    document.cookie = cname + "=" + cvalue + "; " + expires;
}

function getCookie(cname) {
    var name = cname + "=";
    var ca = document.cookie.split(';');
    for(var i=0; i<ca.length; i++) {
        var c = ca[i];
        while (c.charAt(0)==' ') c = c.substring(1);
        if (c.indexOf(name) != -1) return c.substring(name.length, c.length);
    }
    return "";
}

function checkCookie() {
    var user = getCookie("username");
    if (user != "") {
        alert("Welcome again " + user);
    } else {
        user = prompt("Please enter your name:", "");
        if (user != "" && user != null) {
            setCookie("username", user, 365);
        }
    }
}

Vaše odpověď


Prosím používejte diakritiku a interpunkci.

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

0