Autor | Zpráva | ||
---|---|---|---|
radovan1 Profil * |
#1 · Zasláno: 7. 3. 2013, 07:07:40
č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; } |
||
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 |
||
radovan1 Profil * |
#3 · Zasláno: 7. 3. 2013, 07:52:18
Tori:
echo 'Jméno: <input name="jmeno" value="' . (isset($_POST['stranka'] ? htmlspecialchars($registrace['jmeno']) : '') . '" />'; 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 |
#4 · Zasláno: 7. 3. 2013, 07:54:10
radovan1:
Chyběla mi závorka, pardon. |
||
radovan1 Profil * |
#5 · Zasláno: 7. 3. 2013, 07:57:15
Tori:
veľmi pekne Vám ďakujem za pomoc, možete túto tému zavrieť |
||
Časová prodleva: 11 let
|
0