Più bottoni per form

Pubblicità

black-xion

Utente Attivo
Messaggi
119
Reazioni
2
Punteggio
38
Salve a tutti, sto facendo, in php, un piccolo sito/prova che dovrebbe essere un sito e-commerce, tipo ebay...e capita quindi di avere più opzioni per form, di preciso, più bottoni...inutile dire che l'action della form ha un solo destinatario, ed è qui che mi fermo io e chiedo aiuto a voi smanettoni. Ovviamente se c'è un modo in javascript per fare ciò, andrebbe bene comunque, l'importante è che poi nella pagina in cui andrò posso usare il metodo post, con il quale recupero gli input dal form precedente.

Grazie in anticipo per le risposte!
 
Potresti fare nel form html così:

<form method="post" action="file.php">
<input type="text" name="text" value="" />
<input type="submit" name="submit" value="Sostituisci" />
<input type="submit" name="delsubmit" value="Elimina" />
<input type="hidden" name="action" value="aggiorna" />
</form>

e poi in php dovresti gestire la logica così:

PHP:
if ((isset($_POST['action']))&&($_POST['action']=='aggiorna'))
{
   # primo bottone
   if ((isset($_POST['submit']))&&($_POST['submit']=='Sostituisci'))
   {
      // qui inserisci il codice da eseguire per il pulsante "Sostituisci"
    }

   # secondo bottone
   if ((isset($_POST['submit']))&&($_POST['submit']=='Elimina'))
   {
      // qui inserisci il codice da eseguire per il pulsante "Elimina"
    }

}

L'esempio sopra non include alcun javascript e non include neanche le misure contro il xss o hacking delle variabile che normalmente è solo una funzione che mi fa l'escaping giusto in base alle config del server, tipo:

PHP:
function escape($str, $encode_ent = false)
{
	$str  = @trim($str);
	if($encode_ent) {
		$str = htmlentities($str);
	}
	if(version_compare(phpversion(),'4.3.0') >= 0) {
		if(get_magic_quotes_gpc()) {
			$str = stripslashes($str);
		}
		if(@mysql_ping()) {
			$str = mysql_real_escape_string($str);
		}
		else {
			$str = addslashes($str);
		}
	}
	else {
		if(!get_magic_quotes_gpc()) {
			$str = addslashes($str);
		}
	}
	return $str;
}

l'uso è del tipo

$submit=escape($_POST['submit']);
oppure
$text=escape($_POST['text']);
 
quindi il codice di file.php dipenderebbe dal risultato degli if...però va bene anche se io volessi che i due pulsanti mi andassero in due pagine diverse? Per esempio, ho una home con un campo di ricerca e relativo bottone, e sotto ho user e password ed il bottone per il login...
 
Se hai due pagine diverse avrai anche due form diversi. Anche nel caso in cui sulla stessa pagina hai un form di ricerca ed un altro form per il login ed ovviamente anche le action vengono gestite separatamente.
 
Pubblicità
Pubblicità
Indietro
Top