OVH Cloud OVH Cloud

Verification des valeurs d'un tableau de formulaire

2 réponses
Avatar
Mille Risques
Bonjour,

j'ai un drôle de problème avec un tableau de formulaire...

je crée un formulaire comme suit (en simplifié) :

<FORM name="formu" method="POST" action= "module10.php">
<INPUT TYPE="HIDDEN" VALUE="$LOGIN" NAME ="LOGIN">
<INPUT TYPE="TEXT" NAME="SCOREP1[]" VALUE="$VARSCOREP1[$cpt]">
<INPUT TYPE="SUBMIT" onclick="verificationok();return(false)" NAME ="SUBMIT"
VALUE="Enregistrer">

Ce code est en fait englobé dans du php et la ligne qui renseigne le tableau
SCOREP1[] est dans une boucle FOR.
Ce code fonctionne et je récupère bien les valeurs dans "module10.php".

Mon problème se situe dans la fonction verificationok :

function verificationok()
{
alert (document.formu.LOGIN.value);
alert (document.formu.SCOREP1[0].value);
document.formu.submit();
}
La première fenêtre affiche correctement la variable LOGIN. La seconde
génère une erreur, alors que le tableau est bien renseigné.

Si quelqu'un a une idée ...

Merci d'avance.
Olivier Gousse.

2 réponses

Avatar
YD
Bonjour,

j'ai un drôle de problème avec un tableau de formulaire...


Non, lassique ;-)

je crée un formulaire comme suit [...]

<INPUT TYPE="TEXT" NAME="SCOREP1[]" VALUE="$VARSCOREP1[$cpt]">


Attention Javascript ne permet pas la manipulation à l'identique
de PHP des éléments de formulaire.

Voici une adaptation du code pour que cela fonctionne :

<HTML><HEAD><TITLE></TITLE>
<script type="text/javascript">
function verificationok(){
alert (document.formu.LOGIN.value);
var tab=document.formu.elements["SCOREP1[]"];
// Attention le code suivant ne fonctionne que s'il y a bien plusieurs éléments nommés SCOREP1[]
for(i=0;i<tab.length;i++) alert (tab[i].value)

if(... les conditions sont remplies...) return true;
return false;
}
</script>
</HEAD>
<BODY>
<FORM name="formu" method="POST" action= "module10.php"
onsubmit="return verificationok();">
<INPUT TYPE="HIDDEN" VALUE="$LOGIN" NAME ="LOGIN">
<INPUT TYPE="TEXT" NAME="SCOREP1[]" VALUE="1">
<INPUT TYPE="TEXT" NAME="SCOREP1[]" VALUE="2">
<INPUT TYPE="TEXT" NAME="SCOREP1[]" VALUE="3">
<INPUT TYPE="SUBMIT" NAME ="SUBMIT" VALUE="Enregistrer">
</BODY></HTML>

À noter l'utilisation préférable du onsubmit dans la balise FORM plutôt que onclick sur le bouton SUBMIT.

--
Y.D.

Avatar
Mille Risques
YD a écrit dans le message :
40fe4828$1$9363$


Voici une adaptation du code pour que cela fonctionne :
[...]


Formidable ! Ca marche !

À noter l'utilisation préférable du onsubmit dans la balise FORM plutôt
que onclick sur le bouton SUBMIT.


OK, c'est noté.

Merci beaucoup, je séchais dessus depuis un bout de temps.

Olivier Gousse.