Verification de saisie plante : objet non créé/reconnu

Résolu
cs_Herve007 Messages postés 10 Date d'inscription jeudi 7 décembre 2000 Statut Membre Dernière intervention 21 avril 2008 - 18 avril 2008 à 17:07
cs_bultez Messages postés 13615 Date d'inscription jeudi 13 février 2003 Statut Membre Dernière intervention 15 octobre 2013 - 21 avril 2008 à 14:55
function verif_champs()
{

alert("la verif commence");
var nbTotalMachine = document.monForm.nbTotalMachine.value;
// a ce niveau là ma variable est égale à nbTotalMachine = 3
alert(nbTotalMachine);
var partieSimpleCpt = "cptReleve";
var cptARegarder = "";
var cptMachine=0;
alert(partieSimpleCpt);


alert("avant le while");
while (cptMachine<nbTotalMachine)
{
cptMachine ++;
alert("dans le while");
cptARegarder = partieSimpleCpt + cptMachine;
alert(cptARegarder);
// a ce niveau là ca affiche "cptReleve1"

alert("je commence les test avec");alert(cptARegarder);
alert("Yaha");
alert(document.monForm.cptARegarder.value);
if(document.monForm.cptARegarder.value == "")
{
alert("Compteurs : veuillez remplir tous les champs");
document.monForm.cptARegarder.focus();
return false;
}

if (document.monForm.cptARegarder.value.lenght > 10)
{
alert("Compteurs : vous avez saisis un nombre de plus de 10 chiffres");
document.monForm.cptARegarder.focus();
return false;
}

if (isNAN(document.monForm.cptARegarder.value) == true)
{
alert("Compteurs : Veuillez entrer des chiffres uniquement");
document.monForm.cptARegarder.focus();
return false;
}
}
alert("quitte le while");
}

PHP


<?php

echo("<form action='RC.php' method='post' name='monForm' onSubmit='return verif_champs()'>");

$cptMachine = 0;
$nbTotalMachine = 3;
while ($cptMachine < $nbTotalMachine)
{
$cptMachine ++;
echo("Nom ");
}

echo("");

echo("");

echo("</form>");
?>


Le principe : le script php juste en dessous crée autant de textbox de saisie que le nombre dans nbTotaleMachine. Après quoi nbTotaleMachine est envoyée par un input type hidden, grace au bouton submit onSubmit qui appelle une verification (ma methode javascript).
Pour que le code soit plus clair je ré assigne la valeur nbTotaleMachine à une variable javascript et je vais concatener un compteur a cptReleve (ce qu idonne cptARegarder), de sorte que je puisse accéder aux valeurs saisies par l'utilisateur lors des formulaires par un document.monForm.cptARegarder.value

Seulement ça plante, l'objet n'est pas crée. et donc un alerte (document.monForm.cptARegarder.value) ne fait rien alors quue cptARegarder est bien remplie et que celui ci existe dans le php. A l'inverse, un alert(document.monForm.cptReleve1.value) marche très bien, et me retourne la valeur de cptReleve saisie dans le premier textbox généré.


J'espere avoir été clair au maximum.
Et j'espere aussi qu e vous saurez me conseiller une voie sur laquelle chercher. Je suis encore débutant en javascript, et un peu perdu !

Merci d'avance.

6 réponses

cs_Herve007 Messages postés 10 Date d'inscription jeudi 7 décembre 2000 Statut Membre Dernière intervention 21 avril 2008
21 avril 2008 à 14:50
Et bien problème réglé on m'a souffler une soluce qui fonctionne :

if (isNaN(eval('document.monForm.cptCouReleve'+cptMachine+'.value')) == true)

En effet vu que dans JS je cherchasi a atteindre un objet formulaire il faut utiliser eval sinon JS ne comprends pas que je souhaite accéder à l'objet dont le nom est la concaténation de deux variables mais il essait de me faire accéder à cette concaténation de string, et forcement voir la valeur d'une string ca ne marche pas.

merci à the ghost6e pour la réponse et merci pour votre participation
3
cs_Herve007 Messages postés 10 Date d'inscription jeudi 7 décembre 2000 Statut Membre Dernière intervention 21 avril 2008
18 avril 2008 à 17:19
Niourf intro pas passée !

Je recommence !

Coucou ! Voila quelques temps que je suis bloqué sur une vérification de saisie de formulaire bien sur là c'est simple seulement lorsque les formulaires sont générés suivant la valeur d'une variable, la ça devient moins drôle car on ne peut plus y accéder !
0
cs_bultez Messages postés 13615 Date d'inscription jeudi 13 février 2003 Statut Membre Dernière intervention 15 octobre 2013 30
18 avril 2008 à 18:41
Bonjour,

    partout tu utilises cptARegarder
        et ça n'existe pas si ?
    par contre les name='cptReleve#' n'est pas utilisé si ?
<hr />                Cordialement            Bul         [mon Site]     [M'écrire]
0
cs_Herve007 Messages postés 10 Date d'inscription jeudi 7 décembre 2000 Statut Membre Dernière intervention 21 avril 2008
20 avril 2008 à 12:57
Et bien cptARegarder est le form que je vais vérifier dans mon toru de boucle javascript c'est une sorte de compteur justement fait grace à la concaténation de cptRelev + le compteur ainsi je retombe sur les memes noms que php a donner
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_bultez Messages postés 13615 Date d'inscription jeudi 13 février 2003 Statut Membre Dernière intervention 15 octobre 2013 30
20 avril 2008 à 17:34
comme quoi ce n'était pas si clair que cela....
    j'aurais opté pour un truc du style...

    var i=0;
    while ( document.monform["cptReleve"+i] )
    {   contrôle
         i++;   }

    peut-être ce que tu fais fonctionne.
    met nous la page ( enfin UN EXTRAIT, le nécessaire mais pas plus )
          html générée, et pas le php !

<hr />                Cordialement            Bul         [mon Site]     [M'écrire]
0
cs_bultez Messages postés 13615 Date d'inscription jeudi 13 février 2003 Statut Membre Dernière intervention 15 octobre 2013 30
21 avril 2008 à 14:55
probablement la pire des solutions ! mais si ça baigne...
        après tout qui suis-je pour porter un jugement....
<hr />                Cordialement            Bul         [mon Site]     [M'écrire]
0
Rejoignez-nous