bonjour,
je sais vérifier qu'un formulaire a été bien rempli lorsqu'il ne comporte qu'un nombre défini de champs (style nom, email...)
je voudrais ici vérifier un formulaire qui n'a justement pas une taille "fixe", puisqu'il est créé en allant chercher les points à vérifier ds une table MySQL susceptible d'évoluer. Sachant qu'on ne peut pas faire de requetes ds un javascript, j'ai essayer de feinter en générant le code javascript à travers php :
<?php echo '<SCRIPT language="JavaScript">
function verif_formulaire() { var vide=0;';
$res = mysql_query('SELECT * FROM point');
$nb = mysql_numrows($res); $i = 0;
while ($i < $nb){
$ref = mysql_result($res, $i, "point_reference" );
echo ' if(document.formulaire.'.$ref.'.value == "" ){ vide = 1; }';
$i++;
}
echo 'if(vide>0){ return false; }else{ return true; }
}
</script>';
?>
avec l'appel :
<form name="fiche" action="start.php" method="get" onSubmit="return verif_formulaire()">
[...]
<input type="submit" value="valider" name="valider">
(dans mon formulaire, les noms correspondants aux champs sont, pour des raisons de clartés, les références "point_reference" des points de ma table SQL)
l'appel se fait bien, puisque je peux par exemple afficher dans des popup "alert" les différentes références des points à vérifier ds le formulaire, mais dès que je mets à ligne echo ' if (document.formulaire.'.$ref.'.value == "" ){ vide = 1; }'; les popup placés après (et même sur cette ligne) ne s'affichent plus, et le javascript n'a pas l'effet escompté.
Voyez vous où pourrait être mon erreur (ou connaissez vous une meilleure façon de faire ?)