[PHP] Vérifier un champ avant de valider

[Résolu/Fermé]
Signaler
Messages postés
870
Date d'inscription
mardi 23 juin 2009
Statut
Membre
Dernière intervention
8 août 2012
-
Messages postés
870
Date d'inscription
mardi 23 juin 2009
Statut
Membre
Dernière intervention
8 août 2012
-
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

6 réponses

Messages postés
816
Date d'inscription
samedi 21 juin 2008
Statut
Membre
Dernière intervention
17 juillet 2012
183
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é
Messages postés
870
Date d'inscription
mardi 23 juin 2009
Statut
Membre
Dernière intervention
8 août 2012
91
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
Messages postés
5358
Date d'inscription
dimanche 3 février 2008
Statut
Membre
Dernière intervention
13 février 2017
893
<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
?>
Messages postés
870
Date d'inscription
mardi 23 juin 2009
Statut
Membre
Dernière intervention
8 août 2012
91
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 :)
Messages postés
5358
Date d'inscription
dimanche 3 février 2008
Statut
Membre
Dernière intervention
13 février 2017
893
ok, mais a la relecture je viens de me rendre compte d'une belle erreur dans mon script:

if(obj.value="")


if(obj.value=="")
Messages postés
870
Date d'inscription
mardi 23 juin 2009
Statut
Membre
Dernière intervention
8 août 2012
91
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