Autor | Zpráva | ||
---|---|---|---|
Stepanka Profil * |
#1 · Zasláno: 25. 9. 2008, 21:11:10
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 |
#2 · Zasláno: 25. 9. 2008, 21:14:38
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 * |
#3 · Zasláno: 25. 9. 2008, 21:16:56
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 |
#4 · Zasláno: 25. 9. 2008, 21:25:25
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 * |
#5 · Zasláno: 25. 9. 2008, 21:34:56
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 |
#6 · Zasláno: 25. 9. 2008, 22:46:15
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; } } |
||
Časová prodleva: 16 let
|
0