Autor Zpráva
radovan1
Profil *
čaute
rád by som sa opýtal, či sa dá nejaým spôsobom skrátiť tento úsek kódu, ide mi o to aby som stále nemusel písať podmienku if,else
switch ($stranka) {
    case 0:
        if(!isset($_POST['stranka'])){
            echo 'Jméno: <input name="jmeno" value="" />';
        }
        else{
            echo 'Jméno: <input name="jmeno" value="' . htmlspecialchars($registrace["jmeno"]) . '" />';
        }
    break;
    .....
    case 30:     
        if(!isset($_POST['stranka'])){
            echo 'Jméno: <input name="email" value="" />';
        }
        else{
            echo 'Jméno: <input name="email" value="' . htmlspecialchars($registrace["email"]) . '" />';
        }        
    break;
}
ďakujem za reakcie
Tori
Profil
echo 'Jméno: <input name="jmeno" value="' . (isset($_POST['stranka']) ? htmlspecialchars($registrace['jmeno']) : '') . '" />';

Pokud všechny case vypadají stejně (stejná podmínka, mění se jen číslo v case a klíč v $registrace), tak se to dá zkrátit i takhle:
$pole = array(0 => 'jmeno', /* atd. další */  30 => 'email');

if (isset($pole[$stranka]))
    echo 'Jméno: <input name="jmeno" value="' . (isset($_POST['stranka']) ? htmlspecialchars($registrace[$pole[$stranka]]) : '') . '" />';
else 
    echo ''; // větev default ze switche
Ale sama bych to nepoužila, je to na úkor čitelnosti - spíš bych uvažovala, jestli se to nedá udělat celé nějak jinak než tím dlouhatým switchem.
radovan1
Profil *
Tori:
echo 'Jméno: <input name="jmeno" value="' . (isset($_POST['stranka'] ? htmlspecialchars($registrace['jmeno']) : '') . '" />';
vyhadzuje mi nasledovnú chybu :
Parse error: syntax error, unexpected '?', expecting ',' or ')' in C:\EasyPHP-12.1\www\ukazka\pages\registracia.php on line 68

Ale sama bych to nepoužila, je to na úkor čitelnosti - spíš bych uvažovala, jestli se to nedá udělat celé nějak jinak než tím dlouhatým switchem.
-ten switch nebude až taký dlhý lebo som si uvedomil, že formulár bude mať 3 strany s 10 otázkami a nie 30 strán s 1 otázkou ako som to načrtol tuto.
Tori
Profil
radovan1:
Chyběla mi závorka, pardon.
radovan1
Profil *
Tori:
veľmi pekne Vám ďakujem za pomoc, možete túto tému zavrieť

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: