Rechercher : dans
Par :

Limiter taille dans un formulaire

Dernière réponse le 1 jui 2009 à 11:32:09 justins, le 1 jui 2009 à 08:43:08 
 Signaler ce message aux modérateurs

Bonjour,

Je souhaiterais limiter la taille du champ entré dans un formulaire afin qu'on ne puisse entrer que 4chiffre (année par exemple) et si la longueur est différente de 4 alors on aura une erreur disant qu'il est nécessaire que la longueur soit de 4.

echo '
<form method="post" enctype="multipart/form-data">
<p> mois : </p> <input type="text" name="mois" size="2" value=""/>';
if (size != 4)
{
echo 'longueur incorrecte';
}
echo ' <p> annee </p> <input type="text" name="annee" size="4" value=""/>';
</form>

J'espere pouvoir trouver de l'aide
Merci

Meilleures réponses pour « limiter taille dans un formulaire » dans :
[PHP] Upload de fichiers VoirLe langage PHP permet de gérer des fichiers envoyés (uploadés) grâce à un formulaire HTML. Formulaire d'envoi de fichiers Configuration de PHP pour permettre l'upload Récupération du fichier avec PHP Formulaire d'envoi de fichiers La...
Les formulaires HTML VoirIntérêt d'un formulaire Les formulaires interactifs permettent aux auteurs de pages Web de doter leur page web d'éléments interactifs permettant par exemple un dialogue avec les internaute, à la manière des coupons-réponse présents dans certains...
Servlets - Gestion des formulaires VoirIntroduction aux formulaires Les servlets rendent très simple la récupération de données envoyées par l'intermédiaire de formulaires HTML, c'est-à-dire une interface graphique permettant à l'utilisateur de saisir des données. Grâce à la balise...

1

Ozimandias, le 1 jui 2009 à 09:48:08

Tu souhaite le tester en cours de frappe ou après la frappe?

Déjà pour limiter le nombre de caractère maximum, tu peux mettre:

<input type="text" name="mois" size="4" maxlength="4" value=""/>

Comme ça ton input fait 4 caractères de large (size="4") et on ne peut taper plus de 4 caractères (maxlength="4")

Ensuite pour tester en direct le nombre de caractère il faut passer par javascript:

ce code est à placer entre les balises HEAD de ta page (il teste pour 4 caractères, si tu veux tester les deux champs, dis le moi et je modifierais)

<script language="javascript" type="text/javascript">
<!--

function test_input(nombre){

avertissement = document.getElementById("zone_avert");
avertissement.innerHTML = "";

if (nombre.length<4){
avertissement.innerHTML = "Vous devez entrer 4 caractères";
}

}
-->
</script>


ensuite dans ton PHP, ton input:

<input type="text" name="mois" size="4" maxlength="4" value="" onkeypress="test_input(this.value)" onkeyup="test_input(this.value)" /><span id="zone_avert"></span>


@+ Deux intellectuels assis vont moins loin qu'une brute qui marche.
!!! Vous avez obtenu une réponse ... Pensez à marquer vos sujets comme résolus !!!

Répondre à Ozimandias

2

Mopra-L, le 1 jui 2009 à 09:52:04

Hello,

Essaie avec l'option maxlength (non testé, je viens de trouver ca sur Google)


<form method="post" enctype="multipart/form-data">
<p> mois : </p> <input type="text" name="mois" maxlength="2" value=""/>

<p> annee </p> <input type="text" name="annee" maxlength="4" value=""/>
</form>

L'option size definit la longueur du champ input ;)


EDIT : Ah, pas assez rapide pour répondre ^^

Répondre à Mopra-L

3

Ozimandias, le 1 jui 2009 à 09:55:03

C'est pas grave, ton post est la preuve que l'on peut trouver des réponses avec gogole...

@+ Deux intellectuels assis vont moins loin qu'une brute qui ma­rche.
!!! Vous avez obtenu une réponse ... Pensez à marquer vos su­jets comme résolus !!!

Répondre à Ozimandias

4

justins, le 1 jui 2009 à 10:12:58

Si seulement j'avais accès à internet, j'ai accès qu'à un nombre minime de sites dont comment ça marche. =)

<script language="javascript" type="text/javascript">
<!--

function test_input(nombre){

avertissement = document.getElementById("zone_avert");
avertissement.innerHTML = "";

if (nombre.length<2){
avertissement.innerHTML = "Vous devez entrer 2 caractères";
}

}
-->
</script>

<p> mois : </p> <input type="text" name="mois" size="2" value="" onkeypress="test_input(this.value)" onkeyup="test_input(this.value)" /><span id="zone_avert"></span>

Si j'ai bien compris pour le second ce sera ainsi?
Sinon niveau explication du code, tu as en fait créé une fonction qui va lancer une fenetre d'erreur si la longueur n'est pas celle attendue. Par contre je sais qu'onkeypress verifie les touche pressée mais cela signifie que la verification se fera à chaque fois ou losque j'enverrais le formulaire?

Si ce n'est pas la seconde en mettant un isset ($_post(envoye) qui appelera la fonction de test ça le fera qu'une fois le form envoyé non?

Merci pour votre précieuse aide!

Répondre à justins

5

Mopra-L, le 1 jui 2009 à 10:20:11

N'oublie pas le maxlength="2", pour être sur que la longueur soit de 2, ni plus ni moins ;)

Par contre, je pense que ca risque de devenir tres lourd, un message d'erreur a chaque saisie de touche.

J'aurais plutot fait :

<script language="javascript" type="text/javascript">
<!--

function test_input(nombre){

avertissement = document.getElementById("zone_avert");
avertissement.innerHTML = "";

if (nombre.length<4){
avertissement.innerHTML = "Vous devez entrer 4 caractères";
return false;
}else{
return true;
}

}
-->
</script>


<form method="post" enctype="multipart/form-data" onSubmit=test_input(this.value); >
<p> mois : </p> <input type="text" name="mois" maxlength="2" value=""/>
<p> annee </p> <input type="text" name="annee" maxlength="4" value=""/>
</form>

Répondre à Mopra-L

6

Ozimandias, le 1 jui 2009 à 10:44:21

Ta fonction ne peut pas marcher... Tu lui demandes de tester la longueur de la valeur du formulaire...
<form method="post" enctype="multipart/form-data" onSubmit=test_input(this.value); >
Le mot-clef "this" prends en compte la "balise" dans laquelle il est, donc form dans ce cas.

Avec ma fonction, le message d'erreur s'affichera dans le span a côté du input dès que la personne tape un caractère et ce jusqu'à ce qu'il en ai tapé 4. Elle est facilement modifiable pour que ça marche avec le input à 2 caractères.
Deux intellectuels assis vont moins loin qu'une brute qui marche.
!!! Vous avez obtenu une réponse ... Pensez à marquer vos sujets comme résolus !!!

Répondre à Ozimandias

9

 justins, le 1 jui 2009 à 11:32:09

Et pour tester après la frappe je vais devoir procéder de quelle manière, par exemple une fois que je submit le formulaire qu'on me dire que la valeur entrée est invalide?

Merci

Répondre à justins

7

Mopra-L, le 1 jui 2009 à 10:53:44

Ah, je vois, plus ingenieux que moi, je l'avoue :D


Avec tout ca, il devrait trouver son bonheur, en tout cas :)

Répondre à Mopra-L

8

justins, le 1 jui 2009 à 11:29:46

Oui je vais m'amuser avec tout ça, ça me donne une piste appréciable de la manière comment je peux procéder donc merci beaucoup.

Répondre à justins