Autor Zpráva
Stepanka
Profil *
Ahoj,

prosím poradil by mi někdo s jedním problémem, ze kterého se nemůžu vymotat?

Mám jeden formulář, zkráceně asi takový:

?>
<script type="text/javascript">
function prepni(){
        if (document.getElementById("chk").checked)
            {
            document.getElementById("f1").style.display='inline';
            document.getElementById("f2").style.display='inline';
            document.getElementById("f3").style.display='inline';
            document.getElementById("f4").style.display='inline';
            document.getElementById("f5").style.display='inline';
            document.getElementById("ulice_dod").style.display='inline';
            document.getElementById("cislo_dod").style.display='inline';
            document.getElementById("obec_dod").style.display='inline';
            document.getElementById("psc_dod").style.display='inline';
            document.getElementById("nazev_stat_fakturacni").disabled = false;
            document.getElementById("nazev_stat_dodaci").disabled = true;
            }
        else
            {
            document.getElementById("f1").style.display='none';
            document.getElementById("f2").style.display='none';
            document.getElementById("f3").style.display='none';
            document.getElementById("f4").style.display='none';
            document.getElementById("f5").style.display='none';
            document.getElementById("ulice_dod").style.display='none';
            document.getElementById("cislo_dod").style.display='none';
            document.getElementById("obec_dod").style.display='none';
            document.getElementById("psc_dod").style.display='none';
            document.getElementById("nazev_stat_fakturacni").disabled = true;
            document.getElementById("nazev_stat_dodaci").disabled = false;
            }
}

</script>
<?php
echo "<form action=\"\" method=\"post\">";

echo '<select id="nazev_stat_fakturacni" name="nazev_stat_fakturacni">';
        echo '<option value="">Vyber</option>';
        while ($row_stat=mysql_fetch_array($query_stat)) {
            echo '<option value="'.$row_stat['nazev'].'">'.$row_stat['nazev'].'</option>';
        }
echo '</select>

echo '<input id="chk" onclick="prepni()" onload="prepni()" type="checkbox" name="dodaci_adr_jina"><label for="chk">Dodací adresa je jiná než fakturační</label></td></tr>';
echo '<div id="f1">Ulice:</div>
<input  id="ulice_dod" type="text" name="ulice_dod" size="27" value="'.$ulice_dod.'" />
<div id="f2">Číslo:</div>
<input type="text" id="cislo_dod" name="cislo_dod" size="10" value="'.$cislo_dod.'" />

atd pro obec a PSČ......

echo '<select id="nazev_stat_dodaci" name="nazev_stat_dodaci">';
        echo '<option value="">Vyber</option>';
        while ($row_stat=mysql_fetch_array($query_stat)) {
            echo '<option value="'.$row_stat['nazev'].'">'.$row_stat['nazev'].'</option>';
        }
echo '</select>';


A můj problém je takový: Potřebovala bych, aby první selectbox (nazev_stat_fakturacni) zůstal DISABLED, pokud není zaškrtnutý checkbox. A pokud ho zaškrtnu, aby zůstal DISABLED druhý selectbox a první šel editovat. (Oba najednou být editovatelné nesmí).

To co mám mi sice funguje, ale má to jeden háček. Pokud na checkbox kliknu, vše se provede jak má, ale při aktualizaci stránky (nebo posunutí se na další krok a vrácení zpět) se JS funkce sama nenačte a mám editovatelné oba checkboxy.

Potřebovala bych, aby ta funkce platila stále, ne aby se volala jen aktuálním zaškrtnutím/odškrtnutím checkboxu.

Doufám, že jsem to napsala aspoň trošku srozumitelně.

Budu moc vděčná za jakoukoliv radu, děkuju..
habendorf
Profil
Musíš si stav checkboxu nějak zapamatovat. Třeba pomocí cookie.
Stepanka
Profil *
habendorf
To máš asi pravdu, o to se pokouším už dlouho.
Zkoušela jsem třeba
function prepni(){
if (document.getElementById("chk").checked) {
$_SESSION['nazev_stat_dodaci'] = true;
document.getElementById("f1").style.display='inline';
document.getElementById("f2").style.display='inline'
atd...
} else {
$_SESSION['nazev_stat_fakturacni'] = true;
document.getElementById("f1").style.display='none';
document.getElementById("f2").style.display='none';
atd...
}
}

Ale pak jsem přišla na to, že takhle proměnné do JS kódu asi přiřazovat nemůžu.

Javascript totiž moc neovládám, a tady v tomto případě se i těžko googluje..

Prosím, mohl bys mě "nakopnout" trošičku víc?

Budu moc ráda.
Stepanka
Profil *
habendorf

Oprava: Už jsi mě nakopl asi dost, myslím, že pomocí document.cookie už to teď zvládnu. Díky.

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