Bonjour,
Je suis en train de développer un programme qui génére un formulaire afin d'effectuer des enregistrements sur une table d'une bdd MySQL.
Donc je fai une boucle qui scanne toutes mes colonnes de ma table et pour chaque colonne, je crée un titre et une zone de saisie (ci dessous le code)
Jusqu'ici il n'y a pas de problemes.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 for ($i=0; $i<$nbCols; $i++) // Scan des differentes colonnes de la table { echo "<input name='$nomsdeschamps[$i]' type='text' id='nom'>"; //$nomsdeschamps[$i] est une variable retourner par une fonction qui récupère tous les noms de champs de la table }
Le problème vient que dans ma table j'ai limité le nombre de caractere par champs (ex : champ1=int(3), champ2=varchar(20) ).
Afin d'éviter toutes erreures de saisies au maximum, j'ai réussi à coder une petite fonction qui limite le nombre de caractère à saisir mais ça s'applique sur toutes les zones de saisie et non sur une seule.
voici la fonction :
et voici comment je l'utilise
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14 echo '<script> function limiteur(maximum,champ) { //maximum = 10; //champ = document.insertionForm.texte; indic = document.insertionForm.indicateur; if (champ.value.length > maximum) champ.value = champ.value.substring(0, maximum); else indic.value = maximum - champ.value.length; } </script>';
En gros ce que je souhaite faire c'est que mes champs crées dynamiquement (par rapport aux champs de la table) aient les memes taille que les champs de la table. Et que ceci soit fait de maniere dynamique et non pas faire 300 lignes de code pour attribuer une valeur max à chaque zone de saisie sachant que j'ai 53 champs dans ma table !
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 for ($i=0; $i<$nbCols; $i++) // Scan des differentes colonnes de la table { $champ = "document.insertionForm.".$nomsdeschamps[$i]; echo "<input name='$nomsdeschamps[$i]' type='text' id='nom' onKeyDown='limiteur(111,$champ);' onKeyUp='limiteur(111,$champ);'/>"; }
J'espere avoir été clair et que quelqu'un sera m'aider
Cordialement,
Partager