Autor | Zpráva | ||
---|---|---|---|
Ches Profil * |
#1 · Zasláno: 14. 8. 2012, 14:56:14
Ahoj, chci se zeptat jestli jde nějak udělat to, že když mám ve formuláři otázku a výběr odpovědí za pomocí checkboxů nastavit aby bylo povinné minimálně jednu možnost zvolit.
Příklad: Vyber alespoň jedno ovoce které bys chtěl mít v jídelníčku (možno zvolit více odpovědí): <input type="checkbox" name="ovoce1" value="jablko">Jablko<br> <input type="checkbox" name="ovoce2" value="hruska">Hruška<br> <input type="checkbox" name="ovoce3" value="banan">Banán<br> <input type="checkbox" name="ovoce4" value="svestka">Švestka<br> Návštěvník stránek bude odpovídat na otázku a pokud nezvolí nic, tak ho můj stávající skript bez problémů odešle, což je špatně, potřeboval bych, aby byla jedna z těchto čtyř možností nutností zadat. Díky za rady |
||
marek094 Profil |
Ches:
Ano, jde. Musíš do svého „stávajícího skriptu“ přidat podmínku. |
||
panther Profil |
#3 · Zasláno: 14. 8. 2012, 15:15:13
Ches:
pojmenuj si jednotlive prvky ne indexy, ale jako pole, tedy „ovoce[]“. Pak jen kontroluj, zde pole „ovoce“ existuje. |
||
Ches Profil * |
#4 · Zasláno: 14. 8. 2012, 16:26:18
No moje html stránka vypadá podobně jako jsem už uvedl a php skript zpracovává:
$dalsi_moznosti = $_POST['dalsi_moznosti']; $ovoce1 = $_POST['ovoce1']; $ovoce2 = $_POST['ovoce2']; $ovoce3 = $_POST['ovoce3']; $ovoce4 = $_POST['ovoce4']; if ($dalsi_moznosti!="" and $spam=="2") { Mail("muj@mail.com, ","$predmet $jmeno $prijmeni",$zprava, $hlavicka); A podle panthera by to mělo vypadat nějak takto? HTML <input type="checkbox" name="ovoce[]" value="jablko">Jablko<br> <input type="checkbox" name="ovoce[]" value="hruska">Hruška<br> <input type="checkbox" name="ovoce[]" value="banan">Banán<br> <input type="checkbox" name="ovoce[]" value="svestka">Švestka<br> a PHP $dalsi_moznosti = $_POST['dalsi_moznosti']; $ovoce[] = $_POST['ovoce']; if ($dalsi_moznosti!="" and $ovoce="" and $spam=="2") { Mail("muj@mail.com, ","$predmet $jmeno $prijmeni",$zprava, $hlavicka); PHPku nijak moc nerozumím, takže to možná je úplná pitomost. |
||
blaaablaaa Profil |
#5 · Zasláno: 15. 8. 2012, 11:16:07
if (!empty($_POST['dalsi_moznosti']) && isset($_POST["ovoce"]) && $spam=="2") |
||
Ches Profil * |
#6 · Zasláno: 16. 8. 2012, 00:27:37
blaaablaaa:
Díky to funguje. Ale teď nevím jak udělat to, aby mi odesílalo vybrané možnosti mailem. Teď jsem měl v textu který se odesílal: Vybrané ovoce: ".$ovoce1." ".$ovoce2." ".$ovoce3." Pokud se checkbox nezaškrtl, tak se neodeslalo nic a pokud ano, tak hodnota checkboxu. |
||
Alphard Profil |
#7 · Zasláno: 16. 8. 2012, 00:43:41
|
||
Ches Profil * |
#8 · Zasláno: 16. 8. 2012, 01:18:30
Já chápu co se kam posílá, já potřebuju jen znát tvar té proměnné, která bude ve zprávě.
|
||
blaaablaaa Profil |
#9 · Zasláno: 16. 8. 2012, 09:51:58
Ches:
var_dump($_POST); vypise: array(1) { ["ovoce"]=> array(2) { [0]=> string(6) "jablko" [1]=> string(6) "hruska" } } Z cehoz je jasne, ze POST obsahuje pole ovoce o dvou prvcich. Pokud chcete dostat seznam ovoce oddeleny carkami, pouzijete fci implode: implode(", ", $_POST["ovoce"])
Pokud chcete s vracenym polem dale pracovat, pouzijete foreachL foreach ( $_POST["ovoce"] as $ovoce ) { echo $ovoce."<br>"; } Toto jsou ale zakladni veci, ke kterym byste dosel sam, kdybyste alespon rozklikl a vyzkousel funkce, ktere poslal Alphard. |
||
Ches Profil * |
#10 · Zasláno: 17. 8. 2012, 16:27:28
Díky, měl jsem tam chybku v překlepu. Vše funguje.
|
||
Časová prodleva: 11 let
|
0