Autor Zpráva
Stepanka
Profil *
Ahoj,

prosím někdo s jedním fomrulářem?

Je v něm tento checkbox:
echo "<tr><td colspan=\"2\"><br /><input type=\"checkbox\" id=\"odebirat_emaily\" name=\"odebirat_emaily\"  value=\"1\" ";
if ($_SESSION['obj']['odebirat_emaily'] == 1) {
   echo " checked ";
}
echo " /><label for=\"odebirat_emaily\">".__CHCI_ODEBIRAT_NOVINKY_EMAILEM__."</label>";


A když se formulář provede, potřebovala bych do SESSION uložit hodnotu. Jestliže byl checkbox zaškrtlý, tak uložit jedničku. Jestliže nebyl, uložit nulu..

Zatím mám něco takového:
if (isset ($_POST['odebirat_emaily'])) {
	$_SESSION['obj']['odebirat_emaily'] = $_POST['odebirat_emaily'];
}
if (!isset ($_POST['odebirat_emaily'])) {
	$_SESSION['obj']['odebirat_emaily'] = 0;
}

ale to je blbost, vždycky když se na tu stránku vrátím, tak se mi do SESSION nastaví nula.

Nevěděl by někdo, jak to udělat, aby v $_SESSION['obj']['odebirat_emaily'] byla vždy ta hodnota, která se zaškrtne v checkboxu?

Děkuju moc!
BetaCam
Profil
Stepanka

No hlavní problém je ten, že pokud to uložíš do session tak to bude mít platnost jen po dobu platnosti session což myslim, že u odebírání novinek je tak trochu blbost.
Stepanka
Profil *
BetaCam
Ne, o tohle vůbec nejde. Já hned o dva kroky dál uložím tu jedničku (případně nulu) do databáze. A v dalším kroku se celý košík vymaže a všechny SESSION se zruší..
Strajk
Profil
Dej si do toho formuláře skrytý input abys poznala že byl formulář odelsán např.

<input type="hidden" name="formularNaKteryBylOdeslan" value="odebiraniNovinek" />


a pak v php
if ($_POST['formularNaKteryBylOdeslan'] == 'odebiraniNovinek') {
 if (isset ($_POST['odebirat_emaily'])) {
	$_SESSION['obj']['odebirat_emaily'] = $_POST['odebirat_emaily'];
 } else {
        $_SESSION['obj']['odebirat_emaily'] = 0;
 }
}
Stepanka
Profil *
Strajk
Moc děkuji za radu, ale toto řešení mi nefunguje, protože ten formulář se odešle pokaždé, když kliknu na "Pokračovat na další krok". A to musím kliknout vždycky, protože jinak se v objednávce nedostanu dál..
BetaCam
Profil
Strajk
Dej si do toho formuláře skrytý input abys poznala že byl formulář odelsán např.

To neni potřeba to se dá zjistit testováním na name odesílacího tlačítka.

Stepanka

if($_SESSION['obj']['odebirat_emaily'] != 1){
 if (isset ($_POST['odebirat_emaily'])) {
	$_SESSION['obj']['odebirat_emaily'] = 1;
 } else {
        $_SESSION['obj']['odebirat_emaily'] = 0;
 }
}

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

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

0