Autor | Zpráva | ||
---|---|---|---|
Afrod Profil |
Ahoj lidi sem v PHP velkej začátečník, ale teď sem narazil na problém a nevím si sním rady. Mám formulář a dělám na něm rolovací seznamy a pak celej form posílám na mail, ale problém je v tom, že se odešle všechno jenom né ty seznamy nevíte kde mám chybu?
Takhle vypadá moje fce: function druhP() { $druh=array(1=>"Jak zhubnout", "Tvarování postavy"); echo "<select>"; for ($i=1; $i<=2;$i++) echo "\t<option value=$i>".$druh[$i]."</option>\n"; echo "</select>"; } Zkoušel jsem odeslat jak tu fci, tak i tu proměnnou $druh, ale nefunguje mi ani jedno. Ve zprávě co příde na mail se mi ukáže pouze a jen prázdnej řádek. Nevíte kde mám chybu? Pokud budete chtít ještě něco vědět napište to. |
||
Alphard Profil |
#2 · Zasláno: 22. 8. 2009, 09:38:12
Select musí mít nějaké name, aby se pak mohlo odeslat value.
Jestli vám můžu kecat do stylu psaní, udělal bych to nějak takhle: function druhP() { $druh=array(1=>"Jak zhubnout", "Tvarování postavy"); // delší pole se obvykle také rozepisují na víc řádků echo "<select name=\"druhP\">"; foreach ($druh as $klic => $hodnota) { echo "\t<option value=$klic>".$hodnota."</option>\n"; } echo "</select>"; } |
||
Afrod Profil |
#3 · Zasláno: 22. 8. 2009, 09:40:27 · Upravil/a: Afrod
Tak sem tomu dal jmeno a napsal name. Ted ale když už se to odešle, tak se v mailu zobrazí 1 místo toho zvolenýho. Co mám zas blbě?
|
||
Alphard Profil |
#4 · Zasláno: 22. 8. 2009, 09:52:35
V minulém příspěvku jsem už trochu upravil váš kód (foreach), ale jestli je ještě čas provádět změny, bylo lepší mít obecnou funkci pro výpis selectu a hodnoty dodávat jako parametry.
function vypisSelect($name, $pole) { echo "<select name=\"$name\">"; foreach ($pole as $klic => $hodnota) { echo "\t<option value=$klic>".$hodnota."</option>\n"; } echo "</select>"; } $druhP = array(1=>"Jak zhubnout", "Tvarování postavy"); vypisSelect("druhP", $druhP); Snad to není na začátek moc náročné. Ale funkce už stejně používáte. |
||
Afrod Profil |
#5 · Zasláno: 22. 8. 2009, 09:57:57
Posílám zde úryvek toho "prasečího" kódu:
$druh=$_POST['program']; function druhP() { $druh=array(1=>"Jak zhubnout", "Tvarování postavy"); echo "<select name=\"program\">"; for ($i=1; $i<=2;$i++) echo "\t<option value=$i>".$druh[$i]."</option>\n"; echo "</select>"; } V tom Vašem kódu nevim kde mam vzít ten $klic,$pole a následně $hodnota já to zatim nechápu. Prvně musim pochopit to co píšu teď a pak se pokusim pochopit Váš kód. |
||
Alphard Profil |
#6 · Zasláno: 22. 8. 2009, 10:06:54
Afrod:
„V tom Vašem kódu nevim kde mam vzít ten $klic,$pole“ $klic se nastaví ve foreach, to je speciální cyklus pro procházení pole. $pole jsem předal jako parametr funkce vypisSelect(). Vkládejte prosím kódy mezi značky [pre] a [/pre] (stačí kliknout na ). |
||
Afrod Profil |
#7 · Zasláno: 22. 8. 2009, 14:49:05
Do mailu mi přijdou pouze čísla jak je to možný? Vždyť ta promenná $i se má řídit podle toho pole ne?
|
||
Alphard Profil |
#8 · Zasláno: 22. 8. 2009, 16:12:00
Ve value máte jen klíč pole. Buď ho před odesláním využijte k vybrání správného prvku z pole, nebo vložte do value požadovaný řetězec (nezapoňte ho ošetřit, nesmí tam být např. uvozovky).
|
||
Časová prodleva: 15 let
|
0