- Home
- Categorie
- Coding e Sistemistica
- Coding
- Validare un campo di un form
-
Validare un campo di un form
Salve a tutti, ho un form in cui ho inserito un campo di testo che l'utente può lasciare vuoto oppure inserire un codice per ottenere un bonus di sconto.
Avrei bisogno di una funzione che controlli se il campo è vuoto (il campo non è obbligatorio, quindi può essere lasciato vuoto) oppure se il codice inserito è giusto (ad esempio il codice giusto potrebbe essere "pippo").
Qualcuno è così gentile da aiutarmi?
Grazie infinite in anticipo!!!
d-force
-
Puoi procedere in vari modi.
Io farei una cosa del genere:
[php]
// Supponendo che abbiamo un array contenente da query tutti i codici
// giusti di nome $Codici:if(isset($_REQUEST['CodiceForm']) AND $_REQUEST['CodiceForm'] != ""){
// In questo, caso, dopo aver fatto un doppio controllo, vuol dire che
// l'utente ha inserito un valore non vuolto.$CodiceUtente = $_REQUEST['CodiceForm'];
$Check = in_array($CodiceUtente, $Codici); /* Questa funzione cerca il
primo argomento nel secondo array.*/if($Check){
print "Codice corretto";
}else{
print "Codice errato";
}
}[/php]Ovviamente è solo uno dei mille modi in cui si può fare.
-
Grazie 1000 il_gege per i tuo aiuto!
Mi spiego un attimo meglio....
il campo da validare è questo:
<input name="bonus" type="text" size="30"/>
Tutto il form è gestito da questo script:
<script type="text/javascript"> var error=""; e_regex = /^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,})+$/; function Checkit(theform) { if(theform.yourname.value=="") { error+="Inserisci il tuo nome\n"; } if(theform.cognome.value=="") { error+="Inserisci il tuo cognome\n"; } if(theform.indirizzo.value=="") { error+="Inserisci il tuo indirizzo\n"; } if(theform.cap.value=="") { error+="Inserisci il tuo codice di avviamento postale\n"; } if(theform.citta.value=="") { error+="Inserisci la tua città\n"; } if(theform.nazione.value=="") { error+="Inserisci la tua nazionalità\n"; } if(theform.youremail.value=="") { error+="Inserisci la tua email\n"; } else if(!e_regex.test(theform.youremail.value)) { error+="L'indirizzo email non è corretto\n"; } if(theform.appartamento.value=="") { error+="Non hai inserito l'appartamento\n"; } if(theform.giornoarrivo.value=="") { error+="Seleziona il giorno di arrivo\n"; } if(theform.mesearrivo.value=="") { error+="Seleziona il mese di arrivo\n"; } if(theform.annoarrivo.value=="") { error+="Seleziona l'anno di arrivo\n"; } if(theform.giornopartenza.value=="") { error+="Seleziona il giorno di partenza\n"; } if(theform.mesepartenza.value=="") { error+="Seleziona il mese di partenza\n"; } if(theform.annopartenza.value=="") { error+="Seleziona l'anno di partenza\n"; } if(theform.adulti.value=="") { error+="Seleziona il numero di adulti\n"; } if(theform.bambini.value=="") { error+="Seleziona il numero di bambini\n"; } if(error) { alert('**Email non inviata a causa dei seguenti errori:**\n\n' + error); error=""; return false; } else { return true; } } </script>
Nel campo deve essere inserito il codice esatto (PIPPO) oppure lasciato vuoto, altrimenti non parte l'email.
Se il codice inserito non è PIPPO dovrebbe aprirsi una finestrella di Javascript con su scritto: "Codice errato".Se invece il campo è vuoto o viene inserito il codice "PIPPO" l'email parte.
Se vuoi ti invio tutto il codice di quella pagina....
Grazie ancora!!!
-
Non basta, all'interno dello script, un:
if(theform.codice.value != "" AND theform.codice.value != "PIPPO"){ alert('Codice errato'); return false; }elseif(theform.codice.value == "" OR theform.codice.value == "PIPPO"){ return true; }
????
PS. Visto che è nella sezione PHP pensavo lo gestissi con quel linguaggio, di JS non me ne intendo molto..
-
Il fatto è che la pagina è in formato .php
Il form è gestito da uno script php mentre i messaggi di errore da un Javascript.
Il php fa il controllo dei campi ed invia l'email, mentre il javascript apre una finestra quando uno o più campi non sono stati compilati.
E' quello che vorrei fare io...se faccio uno script in Javascript, basterà aprire il codice per vedere il codice di sconto....
Con il controllo dei campi in php questo non succede..Pensi si possa fare?
-
Beh, in questo caso lo fai separatamente...
Il primo controllo dei campi lo fai tramite javascript, poi dopo un submit controlli il codice tramite php nella pagina successiva, e nel caso, ritorni alla pagina precedente.