Input en boucle et verif javascript

Fermé
rudak Messages postés 590 Date d'inscription samedi 7 juin 2008 Statut Membre Dernière intervention 4 juin 2011 - 23 déc. 2009 à 18:26
rudak Messages postés 590 Date d'inscription samedi 7 juin 2008 Statut Membre Dernière intervention 4 juin 2011 - 23 déc. 2009 à 23:20
bonjour
je cree des input a laide d'une boucle en fonction du nombre de prenom a enregistrer
quand je clik sur ENVOYER je veu que ca verifie que tous les champs soient rempli (!='')
si le champ vérifié est nul alors ca le colore et indique une alerte (veuillez remplir champ1 etc..)

a force d'essayer 50 solutions j'en ai fini par faire ce bout de code qui fonctionne pour le check
sauf que cela ne m'envoie rien comme variables vu que mes imput ont le meme nom :(

<?php
$nbrepassagers= 3 ; // on défini ici la variable corespondant nombre de imput souhaités

for($i=0;$i<$nbrepassagers;$i++)
		{
		$nompassager=$_POST['nompassager[$i]'];
		
		echo "passager  $i : ".$nompassager.'<br />'; 

}
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>Document sans titre</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">

<script language="JavaScript">
function couleur(obj) 
{
     obj.style.backgroundColor = "#ffffff"; //on s'assure que l'input ou on se trouve soit blanc
}

function check(thisform) 
{
	var msg = ""; // on défini la variable du message ==>  VIDE au début du check
	var nbpass = thisform.nbrepassagers.value; // on récupère le nombre de passagers sur un INPUT caché
	var inb=0; 
	while(inb < nbpass) // on vérifie chaques champs en faisant une boucle determinée par le nombre de passagers
	{
	
	var champ = thisform.nompassager(inb);
	if (thisform.nompassager(inb).value == "") // si le champ est vide
	{
		msg += 'Veuillez remplir le champ '+inb+'\n'; // on rempli la phrase d'erreur
		thisform.nompassager[inb].style.backgroundColor = "#F3C200"; // on colore le champ en question
				
	}
	inb++;
}
if (msg == "") // si le message d'erreur est vide cela veut dire qu'il ny a pas d'erreur
	{
		return(true); // on acepte le SUBMIT
	}
	else // si le message d'erreur est rempli 
	{
		alert(msg); // on déclenche l'alerte avec le message en question
		return(false); // on refuse le SUBMIT
	}
}
</script>
</head>
<body>
<form name="formulaire" id="formulaire" action="test_verifformvivi.php" method="post" enctype="multipart/form-data" onSubmit="return check(this)">
<?

 for($i=0;$i<$nbrepassagers;$i++)
	{
	echo'Passager n°'.$i;
	echo"<p><input type='text' onKeyUp='javascript:couleur(this);'   id='nompassager' name='nompassager'></p>\n";
	} 
?>
  <p>
    <input type="hidden" name="nbrepassagers" id="nbrepassagers" value='<?php echo $nbrepassagers; ?>'>
  </p>
  <p>
    <input name="envoyer" type="submit" value="Envoyer">
  </p>
</form>
</body>
</html>

2 réponses

Bonjour

Dans ton formulaire, il faut appeler ton champ nompassager[] et pas simplement nompassager.
Ensuite, tu le récupères avec $_POST['nompassager'][$i] et non pas $_POST['nompassager[$i]']
0
rudak Messages postés 590 Date d'inscription samedi 7 juin 2008 Statut Membre Dernière intervention 4 juin 2011 46
23 déc. 2009 à 23:20
j'ai essayé de faire comme tu dit mais alors le javascript ne fonctionne pas.

quand j'apelle mon INPUT : id='nompassager[$i]' le javascript ne trouve plus le champ :(
0