Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2794 connectés 

  FORUM HardWare.fr
  Programmation
  HTML/CSS

  [Résolu] Vérification en javascript d'un tableau dynamique en PHP

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[Résolu] Vérification en javascript d'un tableau dynamique en PHP

n°1486477
johnson951
Posté le 05-12-2006 à 09:50:43  profilanswer
 

Bonjour,
 
Voici ma configuration, je possede deux pages :
la premiere qui contient uniquement un champ de texte pour inserer le nombre de ligne que désire avoir l'utilisateur
 

Code :
  1. <html>
  2. <head>
  3. <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
  4. <title>Document sans titre</title>
  5. </head>
  6. <body>
  7. <form name="form1" method="post" action="test1.php">
  8.  Nombre de ligne<input type="text" name="nbr"><BR>
  9.    <input type="submit" name="Submit" value="Envoyer">
  10. </form>
  11. </body>


 
Puis une seconde qui crée dynamique un tableau avec 2 colonne et n lignes (selon la valeur que l'utlisateur a inseré dans la page précédente l'utilisateur)
 

Code :
  1. <html>
  2. <head>
  3. <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
  4. <title>Document sans titre</title>
  5. </head>
  6. <body>
  7. <form name="form1" method="post" action="test2.php">
  8. <?php
  9. for ($i=0;$i<$nbr;$i++){
  10. ?>
  11.     <tr>
  12.       <td width="84" height="47"><div>
  13.     <?php
  14.  echo "<input name='num".$i."' type='text'>";
  15. ?>
  16.       </div></td>
  17.       <td width="169"><div>
  18. <?php
  19.  echo "<input name='nom".$i."' type='text'>";
  20. ?>
  21.      
  22.       </div></td>
  23. <?php
  24. }
  25. ?>
  26. <p>
  27.   <input type="button" name="button" value="Retour" onclick="history.go(-1)">
  28.   <input name="Submit" type="submit" value="Envoyer" onSubmit="return validation();>
  29. </p>
  30. </form>
  31. </body>
  32. </html>


 
 
En fait ce que j'aimerais faire maintenant c'est lors de l'appui sur le bouton envoyer de vérifier par javascript si l'ensemble des cases sont remplies.
 
J'ai donc fait une petite fonction en javascript que j'appel lorsque je clique sur envoyer

Code :
  1. <script language="javascript" type="text/javascript">
  2. function validation()
  3. {
  4. var test = 0;
  5. if(document.form1.???.value == "" )
  6. {
  7.         document.form1.???.style.background = "red";
  8.          document.form1.???.focus();
  9.          test ++;
  10.      }
  11. else document.form1.???.style.background = "white";
  12. if (test > 0) return false;
  13. else return true;
  14. }
  15. </script>


 
Le probleme avec le javascript est qu'il faut le nom de la case or dans mon cas mes cases se nomme num0, num1...
Or pour verifier il faut ecrire document.form1.nom0.value == ""
 
j'aimerais donc pouvoir remplacer nom0 par quelque chose comme nom.i afin de rentré cela dans une boucle et faire une vérification avec une boucle uniquement comme ceci :
 
 var test = 0;
for (i=0;i<nbr;i++){
 if(document.form1.nom(i).value == "" )  
 {  
        document.form1.nom(i).style.background = "red";
         document.form1.nom(i).focus();  
         test ++;
     }
 else document.form1.nom(i).style.background = "white";
 
 if (test > 0) return false;
 else return true;
}
 
Est ce possible ?
Ou avez vous une autre solution ?
 
Merci de votre aide !
Johnson


Message édité par johnson951 le 06-12-2006 à 15:18:44
mood
Publicité
Posté le 05-12-2006 à 09:50:43  profilanswer
 

n°1486484
FlorentG
Posté le 05-12-2006 à 10:00:59  profilanswer
 

Laisse tomber les document.form.bidule qui n'existent plus. En mettant un id sur le form déjà (name n'existe plus et sert à rien), et en mettant le Js sur l'évènement onsubmit :

Code :
  1. <form id="form1" method="post" action="test2.php" onsubmit="return validation()">


 
Met le JS dans un fichier à part, il pourra être mis en cache et allégera le serveur un p'tit peu

Code :
  1. var inputList = document.getElementById('form1').getElementsByTagName('input');
  2. var test = 0;
  3. var count = inputList.length;
  4. for(var i = 0; i < count; i++) {
  5.   var input = inputList[i];
  6.   if(input.value == '') {
  7.     input.style.backgroundColor = 'red';
  8.     input.focus;
  9.     test++;
  10.   } else {
  11.     input.style.backgroundColor = 'white';
  12.   }
  13. }
  14. return (test == 0);


n°1486552
ZeBix
edit &gt; preview
Posté le 05-12-2006 à 11:42:44  profilanswer
 

Perso j'utilise le "this" que je trouve encore plus pratique, mais sur lequel je ne vais pas débattre de la performance, car je ne la connais pas ;)
 

Code :
  1. <form method="post" action="whatever.php" onsubmit="return validation(this)">


 
Cependant, j'utilisais le "this" avec uniquement des appels fixes aux champs du formulaire concerné :  

Code :
  1. function validation(monform)
  2. { monform.bouton.style.backgroundColor = 'red' ;
  3.   // etc.
  4. }


 
Je n'ai jamais essayé la combinaison avec le -superbe- getElementsByTagName que propose FlorentG ici. Peut-être que cette solution fonctionne aussi :  

Code :
  1. var inputList = monform.getElementsByTagName('input');


 
mais bon ça ne change pas grand chose...
 

n°1486572
anapajari
s/travail/glanding on hfr/gs;
Posté le 05-12-2006 à 12:00:45  profilanswer
 

le this pointe exactement sur le même élement que ce que retourne le getElementById('idDuForm'), en l'occurence l'objet HTMLFormElement.

 

ça ne change donc rien du tout sauf un appel à la fonction getElementById en mois et eventuellement une ré-usabilité supérieure de la fonction pour d'autres formulaires.


Message édité par anapajari le 05-12-2006 à 12:01:19
n°1487291
johnson951
Posté le 06-12-2006 à 15:16:34  profilanswer
 

Parfait FlorenG ca marche super bien !


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  HTML/CSS

  [Résolu] Vérification en javascript d'un tableau dynamique en PHP

 

Sujets relatifs
[javascript] Nombre aléatoire entre 100 et 200?Tableau de record et de type énumé
Execution automatique d'une page PHP à une heure précise[javascript] pb settimeout
[résolu] Probleme avec les sessionspage html dynamique
[PHP : facile je pense] Fichiers en php et incrementation de variables[PHP/MySQL] Stockage de PHP dans une base MySQL
Code Javascript de formulaire qui marche sous IE mais pas Firefox[PHP] Deux pages qui ne s'imbriquent pas
Plus de sujets relatifs à : [Résolu] Vérification en javascript d'un tableau dynamique en PHP


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR