PDA

Visualizza la versione completa : più form nella stessa pagina


lilo
10-07-2007, 20:01
Mi trovo a dover utilizzare due form nella stessa pagina, uno dentro l'altro.

Il primo serve ad aggiornare il carrello della spesa:

<form action="carrello.php?action=aggiorna" method="post" id="cart">
<button type="submit">Aggiorna il carrello</button>
</form>


Il secondo invece a trasmettere i dati definitivi alla pagina successiva, dove verranno inseriti i prodotti acquistati nel database:

<form method="post" id="richiedi" action="richiedi.php">
<input type="submit" value="Completa l\'ordine">
</form>


Come faccio a renderli compatibili? in pratica mi servirebbe che cliccando sul primo aggiorno solo i dati del carrello, mentre con il secondo vado alla pagina successiva conservando le info. e memorizzandoli quindi nella pagina successiva.

Voi come agireste?
grazie

Squall1988
10-07-2007, 20:22
Io farei un'unica form. Utilizzi eventualmente controlli in JS, ma non so esattamente cosa devi fare con il tasto AGGIORNA.

lilo
10-07-2007, 22:08
Originariamente inviato da Squall1988
Io farei un'unica form. Utilizzi eventualmente controlli in JS, ma non so esattamente cosa devi fare con il tasto AGGIORNA.

no, perchè uno rimanda alla stessa pagina (aggiorna), mentre l'altro porta ad un altra pagina (acquisto).

dottwatson
11-07-2007, 00:39
fai puntare entrambi i 2 forma ad un unica pagina, che a seconda del value del bottone di submit faccia lo smistamento. se vuoi mantenere le variabili (nel caso dell' aggiornamento per esempio) utilizzi un include, sennò un header.

es. :



<form action="select.php" method="post">
<button type="submit" name="invia" value ="Aggiorna il carrello">
<button type="submit" name="invia" value="Completa l'ordine">
</form>


select.hpp


if (isset($_POST['invia']) && !empty($_POST['invia']))
{
switch ($_POST['invia'])
{
case "Aggiorna il carrello":
$_GET['action']='aggiorna';
include('carrello.php');
break;
case "Completa l'ordine":
header ('Location:richiedi.php');
break;
}
}

the darkness
11-07-2007, 00:47
Originariamente inviato da dottwatson
fai puntare entrambi i 2 forma ad un unica pagina, che a seconda del value del bottone di submit faccia lo smistamento. se vuoi mantenere le variabili (nel caso dell' aggiornamento per esempio) utilizzi un include, sennò un header.

es. :



<form action="select.php" method="post">
<button type="submit" name="invia" value ="Aggiorna il carrello">
<button type="submit" name="invia" value="Completa l'ordine">
</form>


select.hpp


if (isset($_POST['invia']) && !empty($_POST['invia']))
{
switch ($_POST['invia'])
{
case "Aggiorna il carrello":
$_GET['action']='aggiorna';
include('carrello.php');
break;
case "Completa l'ordine":
header ('Location:richiedi.php');
break;
}
}


quoto in pieno, anche se non capisco percè assegni al get action la stringa aggiorna...

dottwatson
11-07-2007, 00:49
perchè lui nel form di aggiornamento aveva una variabile get preimpostata, così mantiene la linearità della pagina di destinazione


<form action="carrello.php?action=aggiorna" method="post" id="cart">

the darkness
11-07-2007, 09:36
ah, pratcamente è come se avessi riscritto il link, invece hai reimpostato solo il get...
bene, questa cosa non la sapevo..

Loading