| 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: 15 let
|
|||
0