11548 sujets

JavaScript, DOM et API Web HTML5

Bonjour,
Cela fait plusieurs jours que je planche sur un problème de controle de formulaire.
J'ai effectué de multiples recherches sans succès.
Mon problème, je génère un formulaire via une page php, je veux controler chacun des champs qui porte des noms génèré automatiquement. Mon problème est que même si les champs sont vides, le formulaire sera validée.

le code php :

<?php
   $nombre = $_POST['joueur']+1;
   echo"<Table>";
      echo"<Tr>";
         echo"<Td align=\"center\"><b>Joueur</b></Td>";
         echo"<Td align=\"center\" colspan=\"2\"><b>1</b></Td>";
         echo"<Td align=\"center\" colspan=\"2\"><b>2</b></Td>";
         echo"<Td align=\"center\" colspan=\"2\"><b>3</b></Td>";
         echo"<Td align=\"center\" colspan=\"2\"><b>4</b></Td>";
         echo"<Td align=\"center\" colspan=\"2\"><b>5</b></Td>";
         echo"<Td align=\"center\" colspan=\"2\"><b>6</b></Td>";
         echo"<Td align=\"center\" colspan=\"2\"><b>7</b></Td>";
         echo"<Td align=\"center\" colspan=\"2\"><b>8</b></Td>";
         echo"<Td align=\"center\" colspan=\"2\"><b>9</b></Td>";
         echo"<Td align=\"center\" colspan=\"3\"><b>10</b></Td>";
      echo"</Tr>";
      echo"<Form name=\"partie\" method =\"post\" action =\"http://127.0.0.1/Bowling/MAJ/Ajout_S.php\" onsubmit=\"return verif()\">";
         echo"<input type=\"hidden\" name=\"nombre\" value=$nombre maxlength=\"2\" size=\"2\">";
         for($i=1;$i<$nombre;$i++){
            $joueur = "j_".$i;
            echo"<Tr>";
               echo"<Td><input type=\"text\" name=$joueur maxlength=\"20\" size=\"15\"></Td>";
               for($j=1;$j<11;$j++){
                  if($j<>10){
                     for($k=1;$k<3;$k++){
                        $nom = "P_".$i."_".$j."_".$k;
                        echo"<Td><input type=\"text\" name=$nom maxlength=\"1\" size=\"1\"></Td>";
                     }
                  }
                  else{
                     for($k=1;$k<4;$k++){
                        $nom = "P_".$i."_".$j."_".$k;
                        echo"<Td><input type=\"text\" name=$nom maxlength=\"1\" size=\"1\"></Td>";
                     }
                  }
               }
            echo"</Tr>";
         }
         echo"<Tr>";
            echo"<Td align=\"center\" colspan=\"21\">echo"<input type =\"submit\" name=\"envoi\" value=\"Ajouter\"></Td>";
         echo"</Tr>";
       echo"</form>";
   echo"</Table>";
?>

le code javascript :

<script language="JavaScript" type="text/javascript">
   function verif(){
      var nombre = document.partie.nombre.value;
      for(i=1;i<nombre;i++){
         var test = "j_"+i;
         if(document.partie.getElementsByName[test].value==''){
            return false;
         }
         for(j=1;j<11;j++){
            if(j<>10){
               for(k=1;k<3;k++){
                  test = "P_"+i+"_"+j+"_"+k;
                  if(document.partie.getElementsByName[test].value==''){
                     return false;
                  }
               }
            }
            else{
               for(k=1;k<4;k++){
                  test = "P_"+i+"_"+j+"_"+k;
                  if(document.partie.getElementsByName[test].value==''){
                     return false;
                  }
               }
            }
         }
      }
   }
</script>


Merci de votre aide !
Modifié par Cch95 (26 Jun 2006 - 13:42)
Salut,
Ton formulaire en php peut également être validé par un script php. De plus en cas de désactivation de javascript, no problemo. Smiley cligne
En fait j'aimerai valider avant de poster. Peux tu faire cette verification sans poster avec php ?
Cch95 a écrit :
En fait j'aimerai valider avant de poster. Peux tu faire cette verification sans poster avec php ?


Absolument mon capitaine :
un appel à la page courante de ton formulaire, puis vérification du contenu du formulaire via un script, puis envoi définitif ou bien retour sur le formulaire pour modification.
Salut,
Pour accéder aux formulaires de ta page, tu peux utiliser le DOM. Tu as un tableau de tous les formulaires, chaque case contient un tableau de tous les éléments du formulaire, un truc du genre :
document.forms[0].elements[0].value

te donne la valeur du premier élément du premier formulaire.

Un bon lien ici
Avec ça et la bonne boucle en Javascript, ça devrait rouler sans probléme

Bonne continuation