Originariamente inviato da pape86
@Alhazred
...
Altrimenti, quasi quasi, proverei a fare tutto in javascript..però là dovrei capire meglio come si fa perchè non si usano le variabili $_POST, e quindi magari mi guarderò qualche script già fatto.
Per quanto riguarda i controlli direttamente in JS, supponendo:
- che si tratti di un form di registrazione (ma vale per qualsiasi altra cosa)
- di chiamare la funzione checkform
- che il form abbia id="reg" e definito così <form id="reg" action="registrazione.php" method="post">
- in document.getElementById("reg").cognome.value, "cognome" è il "name" del campo da controllare
- la funzione focus() rimetterà il cursore nel campo col dato sbagliato
- invece del pulsante submit, alla fine metti:
<input type="button" name="invia" value="Registrati" onClick="checkForm()">
Il codice della funzione js sarà poi strutturato così
Codice PHP:
function checkForm(obj) {
//controllo che il campo non sia vuoto (da mettere solo se il campo è obbligatorio)
if((document.getElementById("reg").cognome.value == "") || (document.getElementById("reg").cognome.value == "undefined")) {
alert("Inserire il proprio cognome");
document.getElementById("reg").cognome.focus();
return false;
}
/*********************************************************
di seguito metti allo stesso modo i controlli per tutti gli altri campi obbligatori
un "else if" per ogni altro campo
*********************************************************/
//se c'è da mettere una password e confermarla (lo stesso vale per l'indirizzo email)
//questo controlla che siano uguali
else if(document.getElementById("reg").password.value != document.getElementById("reg").passconf.value) {
alert("Le due password inserite non coincidono!\nDigitarle nuovamente");
document.getElementById("reg").password.value = "";
document.getElementById("reg").passconf.value = "";
document.getElementById("reg").password.focus();
return false;
}
//alla fine, se tutti i controlli sono passati, si fa il submit del form
else {
document.getElementById("reg").submit();
}
}
E' comunque buona norma mantenere i controlli in php, altrimenti a chi visita la pagina, se ha js disabilitato, i controlli non verranno effettuati.
Edit: in realtà strutturato in questo modo puoi fare a meno dei controlli in php, perché se uno ha js disabilitato non viene neanche effettuato il submit.
Sarebbe però il caso di mettere un avviso per i visitatori, altrimenti non sanno perché non va l'invio dei dati.