Joomla.it Forum
Componenti per Joomla! => Gestione Form => : billa18 02 Feb 2011, 09:50:29
-
Ciao a tutti
volevo sapere se un campo del modulo di Chronoform puo' essere "condizionato" ad un certo numero di caratteri.
Mi spiego meglio : ho la necessita' che un campo sia ALMENO di 8 caratteri (di piu' si, ma di meno no) : come posso fare a mettere questo "paletto" nel campo in modo che se l'utente ne inserisce meno esca un messaggio d'errore?
Grazie mille
-
dovresti inserire un codice di validazione lato server.. però nn so il codice!
-
Il seguente codice va inserito nel capo Server Site validation Code della finestra Validation del form.
<?php
if (strlen(JRequest::getVar('nome_campo','','post')< 8 {
return "Il campo 'nome_campo' deve avere almeno 8 caratteri";
}
?>
Inserita modifica il 04.02.2011
-
serviva anche a me.. grande!
-
Grazie....ho inserito il codice che mi hai dato ma non mi funziona ancora....
Ho abilitato il db, ho trascritto il nome del campo, ma non mi funziona...ho provato a compilare il modulo mettendo meno di 8 caratteri ed è andato tutto liscio...
Nella pagina validation, in basso, c'è scritto un esempio di codice che pero' è leggermente diverso dal tuo...è lo stesso?
-
Non ho capito tutto quello che hai detto.
Comunque ho inserito una modifica nel codice.
L'esempio è un esempio poi in realtà si gestiscono tante situazioni, ma il metodo è quello.
-
Intendevo che ho fatto la prova sia col tuo codice, che con quello d'esempio di Chronoform, e, pur avendo messo meno di 8 caratteri nel campo, non ho ricevuto alcuna segnalazione d'errore ed il modulo è partito normalmente...
Al momento ho scritto questo codice :
<?php
if($_POST['text_11'] !<> '8')
return 'Il campo password deve essere di 8 caratteri';
?>
E poi ho provato il tuo (come era prima), ma anche col tuo nulla da fare.
Ora riprovo con il nuovo che hai modificato....
Ma non è che devo fare qualcos'altro oltre ad inserire il codice?
-
Sul componente l'esempio riportato è questo :
<?php
if($_POST['accept_terms'] != 'yes')
return 'Sorry, but you need to accept our terms to proceed';
?>
e mi sono limitata a sostituire il nome del campo, e cambiare ='yes' con <>'8'
In cosa ho sbagliato?
(ho deciso di rendere il campo obbligatoriamente di 8 caratteri)
-
In cosa ho sbagliato?
Che la forma non è ottimale in quanto in quel modo accetti tutte le parole maggiori o minori o diverse da 8 (non credo di aver mai visto una condizione del genere .)
La variabile
$_POST['text_11']
attende un testo ... e condizionandola con
!<> '8'
(condizione un po' strana)
non si riceve un bel che se non qualcosa diverso da 8 :)
Per ottenere ciò che intendi e creare una condizione che conti i caratteri devi prima di tutto utilizzare una funzione che conti i caratteri.
http://php.net/manual/en/function.strlen.php
-
@billa18,
Il seguente codice va inserito nel capo Server Site validation Code della finestra Validation del form.
<?php
if (strlen(JRequest::getVar('nome_campo','','post')< 8{
return "Il campo 'nome_campo' deve avere almeno 8 caratteri";
}
?>
Inserita modifica il 04.02.2011
ma il nome del tuo campo nel codice che avevo suggerito lo hai messo ?
-
Certo Vales... text_11 è il nome del campo...ovviamente l'avevo inserito.
Ma credo abbia ragione R.I.P. : essendo un campo di testo probabilmente l'8 del codice diventa un carattere, e non una lunghezza di campo... Sto capendo che è molto piu' complesso di quanto pensassi....
-
Ho notato che nelle proprietà del campo, nel wizard, c'è anche una casella "validation" : a cosa serve? Come si utilizza?