[PHP] Vérifier un champ avant de valider

Résolu
moderno31 Messages postés 900 Statut Membre -  
moderno31 Messages postés 900 Statut Membre -
Bonjour,
Un développement particulier m'amène à générer par boucle php "n" input de type "text" selon le souhait.
ex : Internaute tape 4, et dans la page suivante 4 input sont générés.

Comment vérifier de façon dynamique en javascript que les "n" inputs générés sont bien remplis ?

Merci à vous
Configuration: windows

6 réponses

  1. jeangilles Messages postés 816 Date d'inscription   Statut Membre Dernière intervention   186
     
    Heu, peut être en récupérant la liste des champs input du formulaire en passant par un getElementsByTagName, puis en vérifiant chaque valeur du tableau ainsi récupéré
    0
  2. moderno31 Messages postés 900 Statut Membre 92
     
    Je pense comprendre ce que tu veux dire.
    Je fais déjà des recherches sur la base de ce que tu m'indiques (getElementsByTagName)
    En PHP je me retrouve avec ça, tu ferais quoi toi ?

    echo"<table boder = 0>";
    for($j=1; $j <= $nb_part; $j++){ //Debut de FOR
    echo("<tr>");
    echo("<td><input disabled name='".$j."' value='".$j."' size='2'/></td>");
    echo("<td><input type='text' name='membre_".$j."' id='membre_1' size='32'/></td>");
    echo("</tr>");
    }
    echo"</table>";

    Ensuite je fais un Insert en base via une boucle pour chaque valeur de $i.

    J'aimerais trouver un moyen de bloquer tant que les "n" champs requis ne sont pas remplis.
    Je continuer à chercher

    Merci
    0
  3. Alain_42 Messages postés 5413 Statut Membre 904
     
    <script type="text/javascript">
    //on va donner dynamiquement a JS le nombre de champs dans la variable globale n
    var n=<?php echo $nb_part; ?>;
    //fonction verif
    function verif_champs(){	
    	for(i=1;i<=n;i++){
    		//on atteint l'input par son id
    		var obj=document.getElementById(i);
    		if(obj.value=""){
    			//si au moins un des cahmps est vide on quite la fonction en renvoyant false
    			return false;
    		}
    	}
     return true;
    }
    </script>
    <form name="form1" method="post" action="ton_script.php" onSubmit="return verif_champs();">
    ainsi si on a un return false le formulaire ne part pas
    <?php
    echo"<table boder = 0>";
    for($j=1; $j <= $nb_part; $j++){ //Debut de FOR
    echo("<tr>");
    echo("<td><input disabled name='".$j."' value='".$j."' size='2'/></td>");
    echo("<td><input type='text' name='membre_".$j."' id='".$j."' size='32'/></td>");
    echo("</tr>");
    }
    echo"</table>";
    //attention mets bien ton id=$j comme ci dessus
    ?>
    0
  4. moderno31 Messages postés 900 Statut Membre 92
     
    Hey bien, merci pour cette grande leçon.
    J'apprends encore plus avec cet exemple. Je voyais bien un truc du genre mais comment l'organiser...
    J'aurai certainement trouvé un bricolage. Super sympa vraiment pour ça..

    A bientot :)
    0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. Alain_42 Messages postés 5413 Statut Membre 904
     
    ok, mais a la relecture je viens de me rendre compte d'une belle erreur dans mon script:

    if(obj.value="")

    if(obj.value=="")
    0
  7. moderno31 Messages postés 900 Statut Membre 92
     
    ouoi oui j'avais corrigé.
    Je te suis reconnaissant de m'avoir aidé.
    J'avais d'autres interventions à faire en passant par .js. J'ai bien appris là

    merci
    0