conta caratteri

Ciao

Vorrei realizzare un campo testo input nel quale sia possibile inserire non più di un tot di lettere.

Devo utilizzare il php (in questo caso qual'è la funzione che conta il numero di caratteri inseriti nel modulo?)

o è possibile farlo già in html?

Grazie

inviato 8 anni fa
frankphp
X 0 X

ma devi inserirlo in un database?

risposto 8 anni fa
felix1
X 0 X
ma devi inserirlo in un database?

si

risposto 8 anni fa
frankphp
X 0 X

Da php non puoi fare il controllo dei caratteri man mano che vengono scritti, solo dopo che sono stati "inviati" con strlen.

Se vuoi fare il controllo a priori devi inserire un javascript.

Oppure impostare maxchar= XXX (numero di caratteri) nelle proprietà del campo di input, raggiunti XXX non sarà possibile scrivere oltre se non cancellando i precedenti.

risposto 8 anni fa
LonelyWolf
X 0 X

puoi provare anche con:

substr(.........., 0, 10);

vedi anche su php.net la definizione:

http://it2.php.net/manual/it/function.substr.php

 :bye:

risposto 8 anni fa
felix1
X 0 X

Da php non puoi fare il controllo dei caratteri man mano che vengono scritti, solo dopo che sono stati "inviati" con strlen.

Se vuoi fare il controllo a priori devi inserire un javascript.

Oppure impostare maxchar= XXX (numero di caratteri) nelle proprietà del campo di input, raggiunti XXX non sarà possibile scrivere oltre se non cancellando i precedenti.

Non devo fare il controllo dei caratteri man mano (anche se penso che si possa fare con ajax) e molto probabilmente userò per sicurezza la funzione strlen (tanto l'utente dovrà vedere prima un'anteprima e qui posso fare un controllo e avvisarlo. Più semplicemente posso usare max.. come dici tu.

Grazie

risposto 8 anni fa
frankphp
X 0 X

dovresti solo controllare che, una volta inviato il modulo, la lunghezza della stringa non sia maggiore di n caratteri:

if (strlen($_POST['campo']) > n) {
echo 'il campo supera il numero massimo di caratteri consentito.';
}

oppure potresti fare in ajax:

controllare l'evento onkeypress, ogni volta incrementare un contatore, ogni tot di tasti premuto (ragionevolemente scelto, affinchè non si inviino valanghe di richieste) viene inviata una richiesta ad uno script php che fa esattamente quanto sopra e restituisce una stringa o qualunque cosa tu voglia utilizzare per notificare il tuo JS che qualcosa va bene o non va bene.

c (contatore 0->1)

i (contatore 1->2)

a (contatore 2->3) -> chiamata a controllo.php -> echo strlen($_POST['campo']) > n ? 'errore' : 'ok' -> il js prende la risposta e mostra un alert -> contatore resettato.

o ( contatore 0->1)

...

così vià.

:bye:

risposto 8 anni fa
Andrea Turso
Andrea Turso
86
X 0 X

ajax è esagerato per una cosa del genere, basta un semplice javascript o il maxchar

risposto 8 anni fa
LonelyWolf
X 0 X
Effettua l'accesso o registrati per rispondere a questa domanda