Diskuze: Neprovede se ELSE
V předchozím kvízu, Online test znalostí PHP, jsme si ověřili nabyté zkušenosti z kurzu.
Člen
Zobrazeno 9 zpráv z 9.
//= Settings::TRACKING_CODE_B ?> //= Settings::TRACKING_CODE ?>
V předchozím kvízu, Online test znalostí PHP, jsme si ověřili nabyté zkušenosti z kurzu.
S PHP moc neumím, ale nemá se tam třeba kontrolovat ta hodnota?
if ($_POST['upozorneni'] == 'ANO')
Nemusí, nicméně i to jsem už zkoušel. Když není zašktnutý tak $_POST['upozorneni'] není nastavena (=false)
Vyhodnocení podmínky je dobře, pokud platí provede se. Chyba je v tom že když neplatí tak se neprovede ani ta else větev
Tak ještě můžeš kontrolovat jestli je tedy nastavena.
if(isset($_POST['upozorneni']))
Případně i s tou kontrolou hodnoty dohromady
if(isset($_POST['upozorneni']) && $_POST['upozorneni'] == 'ANO')
Pak už nevím...
V tom formuláři máš pouze tento input, že? Takže pokud nebude zaškrtnutý pole $_POST vlastně neexistuje.
Takže pouze:
if (isset($_POST['upozorneni']))
{
$spravceUzivatelu->nastavUpozorneni(1);
$this->pridejZpravu('Nyní budete dostávat upozornění na nové vzkazy.');
$this->presmeruj('administrace');
}
else
{
$this->pridejZpravu('Upozornění na nové vzkazy bylo ZRUŠENO.');
$spravceUzivatelu->nastavUpozorneni(0);
$this->presmeruj('administrace');
}
I isset už sem zkoušel. Stejný výsledek :/
V tom formulari mas jen ten checkbox? Pridej si else jeste na konec te podminky
if ($_POST)
protoze z toho, co popisujes to vypada, ze v tom POST nic neni a tak se neprovede nic
Jo, to je přesně ono, tyjo... díky.
Akorát sem potřeboval vyhodnotit, jestli ten formulář je odeslaný (kdyby
ne, tak nic neměnit) tak sem do formuláře přidal ještě jeden prvek (asi by
šlo vyhodnocovat i tlačítko ale.. )
<input type="hidden" name="odeslano" value="ano">
Zobrazeno 9 zpráv z 9.