Un amico su un altro forum mi ha suggerito di mettere una variabile "pass" per controllare.
Vediamo se potete aiutarmi Quello che devo fare è questo:
- inizialmente dovrebbe mandare a video il form uguale per tutti
- si fanno i controlli in js
- si fanno i controlli in php e ricarica la pagina mettendo pass=1
- a questo punto dovrebbe mandare a video il form giusto a seconda della scelta effettuata dall’utente
- si fanno i controlli in js
- si fanno i controlli in php e ricarica la pagina mettendo pass=2 altrimenti mi ripete i controlli che ho messo nelle righe in rosso
<html>
<head>
<title>prova</title>
<?
//connessione DB
?>
<script language="JavaScript" type="text/JavaScript">
function validateForm()
{
//controlli js sul primo form quello uguale per tutti
}
function validateForm1()
{
//controlli js sul form secondario optando per la scelta 1
}
function validateForm2()
{
//controlli js sul form secondario optando per la scelta 2
}
</script>
</head>
<body>
<?php
if(!isset($_GET['pass']) || ($_GET['pass'] == "") || ($_GET['pass'] == 1))
{
$sw = 0;
if (isset($_POST['nome'])
{ $sw = 1;
if(empty($_POST['nome']))
{
echo "controllo php - il campo nome è vuoto"; $sw=0;
}
else { $nome = $_POST['nome']; }
}
if ($sw == 1 )
{
$scelta = $_POST['scelta'];
//INSERISCI i dati nel DB
}
}
elseif ($_GET['pass'] == 2)
{
// controllo sui vari campi a seconda delle varie scelte
e qua devo registrare di nuovo sul DB avendo per chiave quel “nome” che però non mi è passato
if(!isset($_GET['pass']) || $_GET['pass'] == "")
{
?>
<form onSubmit="return validateForm();" action="<?php echo $_SERVER['PHP_SELF'];?>?pass=1" method="post" name="frm">
Nome dell'operazione<input type="text" name="nome" ><br>
Scelta<fieldset>
<input type="radio" name="scelta" value="1" checked="checked">scelta 1<br>
<input type="radio" name="scelta" value="2">scelta 2<br>
</fieldset>
<input name="frmSubmit" type="submit" value="Invia"><br>
</form>
<?php
}
else if($_GET['pass'] == 1)
{
if($_POST['scelta'] == 1)
{
?>
<form onSubmit="return validateForm1();" action="<?php echo $_SERVER['PHP_SELF'];?>?pass=2" method="post" name="frm1">
Nome <input type="text" name=”professione" ><br>
<input name="frm1Submit" type="submit" value="Invia"><br>
</form>
<?php
}
elseif ($_POST['scelta'] == 2)
{
?>
<form onSubmit="return validateForm2();" action="<?php echo $_SERVER['PHP_SELF'];?>?pass=2" method="post" name="frm2">
Nome <input type="text" name="hobbies" ><br>
<input name="frm2Submit" type="submit" value="Invia"><br>
</form>
<?php
}
}
?>
</body>
</html>
Ancora non ho messo i controlli però già vedo che va bene eccezion fatta per il nome che ricaricando la pagina non me lo passa più.
Posso passarlo con un campo hidden?
In post come farei a passarlo?
Oppure devo cambiare tattica e spedire tutti e 2 i form insieme cioè la prima volta che clicco su submit fare solo un controllo js e farmi apparire uno dei form secondari e solo il secondo sumbit sarebbe quello che invia i dati al DB?
Beh forse ho fatto un po’ di confusione a spiegarmi (vista anche l’ora...) ma spero che possiate aiutarmi!