javascript dans une boucle while

Invité
Invité n'ayant pas de compte PHPfrance

13 févr. 2005, 15:49

Bonjour,

voilà j'ai un tout petit formuaire qui est créé dans une boucle while et je souhaite vérifier qu'il est bien rempli, petit problème, quand il y a plusieurs enregistrement le javascript pose probleme voici son code
echo '
<script language="JavaScript">
<!--
function verif()
{ erreur = ""
	if (document.forms[0].image.value =="")
	{ erreur += "Le champ image est vide \n"
	}
	if (erreur == "")
	{ document.forms[0].submit ()
	}
	else
	{ alert (erreur + "\n Corrigez votre saisie, svp")
	}
}
//-->
</script>';
mais si j'ai plusieurs enregistrement dans mon while j'aurais plusieurs formulaires et par conséquent je devrais pouvoir incrémenter mon [0]

j'ai essayé ceci mais ça ne vas pas du tout:
echo '
<script language="JavaScript">
<!--
function verif()
{ erreur = ""
	if (document.forms['.$nombre++.'].image.value =="")
	{ erreur += "Le champ image est vide \n"
	}
	if (erreur == "")
	{ document.forms['.$nombre++.'].submit ()
	}
	else
	{ alert (erreur + "\n Corrigez votre saisie, svp")
	}
}
//-->
</script>';
si quelq'un avais une petite solution pour remédier à cela

Eléphanteau du PHP | 14 Messages

13 févr. 2005, 15:58

moi pour vérifier les saisies je le fais en php ... Enfin maintenant si tu veux quand même le faire en javascript, je ne peux pas t'aider car j'y connais rien niveau javascript, je te donne juste mon avis sur "la question" ...
Cordialement, Eric Debra.

Administrateur PHPfrance
Administrateur PHPfrance | 149 Messages

13 févr. 2005, 16:10

php génère une page web contenant une fonction javascript

Cette fonction n'est donc dans le Source 1 fois.
regarde le source généré pour te le prouver.

Ton javascript s'exécute coté client il n'est pas dans une boucle
ce qui est dans une boucle c'est l'appel de la fonction
il faut donc l"appeler avec un paramêtre qui fera réagir la fonction

Code : Tout sélectionner

<script language="JavaScript"> <!-- function verif(blah) { erreur = "" if (document.forms[blah].image.value =="") { erreur += "Le champ image est vide \n" } if (erreur == "") { document.forms[blah].submit () } else { alert (erreur + "\n Corrigez votre saisie, svp") } } //--> </script>';
et dans ta page tu auras des javascript="verif('.$numero++.');" ....
.

Si tu m'as compris, je voudrais que tu me le réexpliques avec tes mots.
--
Moosh - ancêtre de la communauté
http://www.phpfrance.com

Eléphanteau du PHP | 13 Messages

11 mars 2005, 04:11

Alu,

Vu le flou, et que je cherchais une fonction 'du genre' et en tapant une recherche, je suis tombé sur cet page.

Fonction qui traite les N elements (Array Elements) renseignés d'un formulaire renseigné (Formulaire), retourne une alerte texte (Array Phrase) correspond à la colone de l'element du tableau Elements.

Cela permet de d'avoir plusieurs actions dans un formulaire et donc de ne pas verifier tous les champs... par exemple.
Ou tout simplement, laisser des éléments facultatifs.

Code : Tout sélectionner

<!-- Fonction --> <script> function CheckFormulaire(Formulaire, Elements, Phrase) { for (Element in Elements){ if(!document.forms[Formulaire].elements[Elements[Element]].value) { alert(Phrase[Element]); document.forms[Formulaire].elements[Element].focus; return false; } } document.forms[Formulaire].submit(); return true; } </script> <!-- Formulaire Pour ne pas que le Formulaire se valide tous seul, il faut utiliser un bouton simple de type button, et non un bouton de type submit --> <form action="gestion.php" method="post "name="Gestion"> <p>Nom<br><input type="text" name="Nom"></p> <p>Prenom<br><input type="text" name="Prenom"></p> <p>Pseudo<br><input type="text" name="Pseudo"></p> <p>Mail<br><input type="text" name="Mail"></p> <p> <input type="button" value="Valider" OnClick="CheckFormulaire( 'Gestion', Array('Nom','Prenom','Mail'), Array('Nom vide !','Prenom absent !','Mail indispensable !')); "> </p> </form>
Exemple fonctionel... :wink:

En esperant que des personnes soit attirer par le titre du sujet ... qui n'as pas vraiment sa place dans ce forum. :lol:
Vincent (nok-I)