| Autor | Zpráva | ||
|---|---|---|---|
| martin_k Profil * |
Dobrý den vsem, mam jeden malý problém s programováním v php:
Potrebuji t pole select, které mam definované v xhtml následovně: <select name="obor[]" multiple> <option value="L">Lyceum</option> <option value="E">ELN</option> <option value="S">Stojař</option> <option value="B">Babovky</option> </select> po kliknuti na submit aby formulář vypsal dané zvolené políčko, php script který jsem si udelal vypadá takhle: for($i=0;$i<=4;$i++) {
switch($_POST["obor[$i]"])
{
case 'L': echo "Tvuj obor je lyceum</br>" ; break;
case 'E': echo "Tvuj obor je eln</br>" ; break;
case 'S': echo "Tvuj obor je strojar/br>" ; break;
case 'B': echo "Tvuj obor je babovka</br>" ; break;
}
}Ale píse mi to nsledujíci chybu: Notice: Undefined index: obor[0] in C:\Program Files (x86)\UsbWebserver\Root\leaving.php on line 44 Notice: Undefined index: obor[1] in C:\Program Files (x86)\UsbWebserver\Root\leaving.php on line 44 Notice: Undefined index: obor[2] in C:\Program Files (x86)\UsbWebserver\Root\leaving.php on line 44 .... |
||
| panther Profil |
#2 · Zasláno: 6. 5. 2010, 14:54:57 · Upravil/a: panther
martin_k:
Ta chyba říká, že nejsou definovány indexy 0-2 v poli, čiliže pole je prázdné. Vypiš si var_dump($_POST) Tady ti bude stačit <select name="obor">...</select>
<?php
if(!empty($_POST['obor'])) {
switch ($_POST['obor']) {
case 'L': echo '...'; break;
....
}
}
?>EDIT: přehlédl jsem multiple. Omlouvám se. |
||
| martin_k Profil * |
#3 · Zasláno: 6. 5. 2010, 14:58:35
Vypsal tohle:
["obor"]=> array(1) { [0]=> string(1) "S" } |
||
| martin_k Profil * |
#4 · Zasláno: 6. 5. 2010, 15:01:03
Jinak potrebuji aby si mohl uzivatel mohl zvolit vice oborů ze select, nevim jestli to tvuj vyseuvedeny skript řeší, já to řešil cyklusem FOR
|
||
| Jake898 Profil |
#5 · Zasláno: 6. 5. 2010, 15:36:21 · Upravil/a: Jake898
Takto by to mělo jít.
for($i=0; $i<=4; $i++)
{
switch($_POST["obor"][$i]) // zde je zmena
{
case 'L': echo "Tvuj obor je lyceum</br>" ; break;
case 'E': echo "Tvuj obor je eln</br>" ; break;
case 'S': echo "Tvuj obor je strojar/br>" ; break;
case 'B': echo "Tvuj obor je babovka</br>" ; break;
}
}
A možná bych to udělal takto:
$obory = Array('L' => 'lyceum', 'E' => 'eln', 'S' => 'strojar', 'B' => 'babovka');
foreach ($_POST['obor'] as $key)
{
echo 'Tvůj obor je ' . $obory[$key] . '.<br />';
}
|
||
| martin_k Profil * |
#6 · Zasláno: 6. 5. 2010, 15:44:05
Vyreseno nasledovně:
foreach($_POST["obor"] as $num => $key) { // projede hodnoty v poli obor// num je cislo cyklu 0,1,2,3 // key je hodnota v poli
switch($key)
{
case 'L': echo "Tvuj obor je lyceum</br>" ; break;
case 'E': echo "Tvuj obor je eln</br>" ; break;
case 'S': echo "Tvuj obor je strojar</br>" ; break;
case 'B': echo "Tvuj obor je babovka</br>" ; break;
}
}Dekuji vsem za pomoc |
||
|
Časová prodleva: 15 let
|
|||
0