Newsgroup: it.comp.www.php
Titolo: form che ricorda dove ho messo le crocette

allora vi spiego il problema
Ho un form che sarebbe un test con tante domande a risposta multipla, e per
ogni domanda è possibile una sola risposta.
Se io non rispondo a tutte le domande e spingo Submit, ho predisposto la
cosa in modo che mi si ricarica di nuovo la pagina con il test, ma con una
scritta in cima alla pagina che dice "Non hai risposto a tutte le domande!"
Il problema è che adesso mi tocca rispondere di nuovo anche a quelle a cui
avevo già risposto!
Come posso fare invece per fare in modo che quelle a cui avevo già risposto
rimangano contrassegnate?
è un problema di php o di html?
grazie per l'aiuto e ciao
Ben

il controllo sui campi del form lo potresti fare in molti modi....
è a mio parere più carino e semplice farlo in javascript.......
è carino se ti sbatti e lo fai in php....
Ti dico 2 parole su quello in Php.....
ci sono a mio parere almeno due soluzioni....sono comunque semplici......
la prima che è anche la più veloce è un bel test all'inizio della pagina che
controlla se tutti i campi sono stati inseriti........
es.
<?
if (!($Submit)){
  form_html();
}else{
    if (($domanda1)and($domanda2)and($domanda3)){
        spedisci/elabora/ec...
    }else{
        echo "errore nell'inserimento dei dati<br>Ricordo che sono tutti
obbligatori";
        form_html();
    }
}
?>
Dove form_html() è una funzione che contiene tutto il form html.........
L'altra è più complessa da realizzare..................
Per ogni domanda tu esegui un controllo in modo da segnalare visivamente a
quale delle domande non hai risposto...
es.
<?
 if (!($Submit)){
    form_html();
}else{
    if (!($domanda1)){
        $errore1="Non hai risposto alla domanda 1";
    }
    if (!($domanda2)){
        $errore2="Non hai risposto alla domanda 2";
    }
    ecc....
    form_html();
}
?>
In questo caso nel form html ci saranno dei controlli sopra le domande del
tipo
<? if ($errore1){ echo "<font color=\"red\">$errore1</font>"; } ?> domanda1
? SI NO
<? if ($errore2){ echo "<font color=\"red\">$errore2</font>"; } ?> domanda2
? SI NO
ecc....
Così visivamente un vede i campi in rosso e si accorge che non ha risposto
adeguatamente...........
Spero di esser stato esaustivo........................
BYE BYE
Kamy
http://www.tutorials.it

Non fai prima a fare un piccolo javascript che non ti permette di continuare
se non hai risposto a tutte le domande e ti fa comparire un'alert box?


Una cosa del genere?
<html>
<body>
<form method=post action="mestesso.php3">
<?
echo isset($radio_select)?$radio_select:"";
echo "checkbox 1 <input type=checkbox name=checkbox1
".(isset($checkbox1) ? "
checked>":">");
echo "<br>checkbox 2 <input type=checkbox name=checkbox2
".(isset($checkbox2) ?
" checked>":">");
echo "<br>text 1 <input type=text name=testo1 ".(isset($testo1) ? "
value='".$testo1."'>":">");
echo "<p>Radio:</p>";
echo "<input type=radio name=radio_select value='opz1'
".((isset($radio_select)
and $radio_select=="opz1") ? " checked" : " ")."> opzione 1<br>";
echo "<input type=radio name=radio_select value='opz2'
".((isset($radio_select)
and $radio_select=="opz2") ? " checked" : " ")."> opzione 2<br>";
echo "<input type=radio name=radio_select value='opz3'
".((isset($radio_select)
and $radio_select=="opz3") ? " checked" : " ")."> opzione 3</p>";
?>
<br><input type="submit" name="submit">
</body>
</html>
Luigi
BenKenobi ha scritto:
