Autor | Zpráva | ||
---|---|---|---|
Manny Profil * |
#1 · Zasláno: 9. 5. 2011, 13:22:48
Potřeboval bych radu, jak odlišit několik submitů ve formuláři. Napadlo mě vícerozměrné pole, ale můžu dát tlačítku více "name"?
|
||
ShiraNai7 Profil |
#2 · Zasláno: 9. 5. 2011, 13:29:16
<input type="submit" name="submit1" value="Submit první"> <input type="submit" name="submit2" value="Submit druhý"> <input type="submit" name="submit3" value="Submit třetí"> atd... <?php if(isset($_POST['submit1'])) { ... něco ... } elseif(isset($_POST['submit1'])) { ... něco ... } elseif(isset($_POST['submit1'])) { ... něco ... } ... ?> |
||
Manny Profil * |
#3 · Zasláno: 9. 5. 2011, 14:06:25
Jasně, ale chtěl jsem nejdřív otestovat, jestli se vůbec odesílalo a pak, kterým submitem. Myslel jsem, že by mohlo být něco elegantnějšího. Mám cca 8 submitů a než to všechno ověřím podmínkami...
|
||
ShiraNai7 Profil |
#4 · Zasláno: 9. 5. 2011, 14:14:42 · Upravil/a: ShiraNai7
Manny:
Stačí taky trochu uvažovat.. if(!empty($_POST)) { // něco bylo odesláno // zjištění použitého submitu $submit_num = 8; // 8 submitů $submit_used = null; for($i = 1; $i <= $submit_num; ++$i) if(isset($_POST['submit'.$i])) { // formát "name" submitu je submitX kde X je jeho číslo $submit_used = $i; break; } // akce na základě použitého submitu switch($submit_used) { case 1: // akce pro submit 1 break; case 2: // akce pro submit 2 break; a tak dále... } } |
||
Manny Profil * |
#5 · Zasláno: 9. 5. 2011, 14:52:42
Prasácky jsem to zatím chtěl udělat takhle, ale hlásí syntax error.
Mám tam ješte checkbox "terms", který se ověřuje. if ((empty($_POST["terms"])) && (!empty($_POST["koupit"]))){ $chyba = true; } elseif ((empty($_POST["terms"])) && ((empty($_POST["koupit1"])) || (empty($_POST["koupit2"])) || (empty($_POST["koupit3"])) ||(empty($_POST["koupit4"])) || (empty($_POST["koupit5"])) || (empty($_POST["koupit6"])) || (empty($_POST["koupit7"])) || (empty($_POST["koupit8"]))) ){ $chyba = false; } else { if ($_POST["koupit1"]) { header("location:https://www.paypal.com/"); } elseif (isset($_POST["koupit2"])) { header("location:https://www.paypal.com");/*Přesměrování z druhého submitu*/ } elseif (isset($_POST["koupit3"])) { header("location:https://www.paypal.com"); } elseif (isset($_POST["koupit4"])) { header("location:https://www.paypal.com"); } elseif (isset($_POST["koupit5"])) { header("location:https://www.paypal.com"); } elseif (isset($_POST["koupit6"])) { header("location:https://www.paypal.com"); } elseif (isset($_POST["koupit7"])) { header("location:https://www.paypal.com"); } else (isset($_POST["koupit8"])) { header("location:https://www.paypal.com"); } } |
||
Stano Profil |
#6 · Zasláno: 9. 5. 2011, 15:02:30 · Upravil/a: Stano
Manny:
Nebol by nato vhodnejší select? ak ide len o presmerovanie. alebo spraviť takú fintu že: <input type="submit" name="submit[0]" value="submit 0"> <input type="submit" name="submit[1]" value="submit 1"> <?php if(!empty($_POST)){ $headers = array("https://www.paypal.com/", "https://www.paypal.com/", .....); header("location:".$headers[key($_POST["submit"])]); } ?> |
||
Časová prodleva: 13 let
|
0