Autor Zpráva
Manny
Profil *
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
<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 *
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
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 *
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
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"])]);
        }
      
?>


Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: