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

Résolu
Signaler
Messages postés
10
Date d'inscription
jeudi 7 décembre 2000
Statut
Membre
Dernière intervention
21 avril 2008
-
Messages postés
13616
Date d'inscription
jeudi 13 février 2003
Statut
Membre
Dernière intervention
15 octobre 2013
-
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

Messages postés
10
Date d'inscription
jeudi 7 décembre 2000
Statut
Membre
Dernière intervention
21 avril 2008

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
Messages postés
10
Date d'inscription
jeudi 7 décembre 2000
Statut
Membre
Dernière intervention
21 avril 2008

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 !
Messages postés
13616
Date d'inscription
jeudi 13 février 2003
Statut
Membre
Dernière intervention
15 octobre 2013
36
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]
Messages postés
10
Date d'inscription
jeudi 7 décembre 2000
Statut
Membre
Dernière intervention
21 avril 2008

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
Messages postés
13616
Date d'inscription
jeudi 13 février 2003
Statut
Membre
Dernière intervention
15 octobre 2013
36
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]
Messages postés
13616
Date d'inscription
jeudi 13 février 2003
Statut
Membre
Dernière intervention
15 octobre 2013
36
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]