IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

JavaScript Discussion :

[DOM] DOM : accès à un élément


Sujet :

JavaScript

  1. #1
    Membre confirmé Avatar de PKO06
    Profil pro
    Étudiant
    Inscrit en
    Octobre 2006
    Messages
    91
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2006
    Messages : 91
    Par défaut [DOM] DOM : accès à un élément
    Bonjour,

    Ma fonction fait appel aux valeurs de deux éléments pour les comparer.
    Ces éléments sont deux <select> dont les noms sont de la forme svX et spY où X et Y sont des nombres.
    Je cherche à comparer svX et spY avec X=Y, en effet j'ai un nombre de <select> dans mon formulaire égal à val_de_inc.
    J'ai donc essayé des "construire" les noms :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    function checkscript(){
    	flag_alert = false;
    	flag = true;
    	var ErrMsg;
    	var counter;
    	var svAv;
    	var spAv;		
     
    	for (counter = 0; counter <= document.forms['venteform'].val_de_inc.value; counter++){
    		svAv = sv+counter;
    		spAv = sp+counter;
    		if(document.forms['venteform'].svAv.value>document.forms['venteform'].spAv.value){
    			flag-alert=true;
    			break;
    		}
    	}
    		if(flag_alert == true){
    		flag = false;
    		ErrMsg = 'Les ventes ne peuvent pas être sauvegardés.';
    		alert(ErrMsg);
    	}
     
    	return flag;
    }
    Et bien entendu ça ne fonctionne pas !
    J'ai procédé de cette manière en m'inspirant d'un code que j'utilise en php qui fait la même chose.

    Merci pour votre aide

  2. #2
    Membre Expert
    Inscrit en
    Septembre 2002
    Messages
    2 307
    Détails du profil
    Informations forums :
    Inscription : Septembre 2002
    Messages : 2 307
    Par défaut
    document.forms["formname"].elements["elementname"]

  3. #3
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 658
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 658
    Billets dans le blog
    1
    Par défaut
    les value ne sont pas des numérique ...
    un petit *1 ne leur ferait sans doute pas de mal ...
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

  4. #4
    Expert éminent

    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    13 474
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2007
    Messages : 13 474
    Par défaut
    Bonjour,
    de plus tu affectesMais tu as déclaréA+

  5. #5
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 658
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 658
    Billets dans le blog
    1
    Par défaut
    oui un nom de variable ne peut contenir un opérateur ...
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

  6. #6
    Membre confirmé Avatar de PKO06
    Profil pro
    Étudiant
    Inscrit en
    Octobre 2006
    Messages
    91
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2006
    Messages : 91
    Par défaut
    Merci,
    J'ai donc corrigé. (\" car stocké dans une variable php)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    function checkscript(){
    	flag_alert = false;
    	flag = true;
    	var ErrMsg;
    	var counter;
    	var svAv;
    	var spAv;		
     
    	for (counter = 0; counter <= document.forms[\"venteform\"].elements[\"sval_de_inc\"].value*1; counter++){
    		svAv = sv+counter;
    		spAv = sp+counter;
    		if(document.forms[\"venteform\"].elements[\"svAv\"].value*1>document.forms[\"venteform\"].elements[\"spAv\"].value*1){
    			flag_alert=true;
    			break;
    		}
    	}
     
    	if(flag_alert == true){
    		flag = false;
    		ErrMsg = 'Les ventes ne peuvent pas être sauvegardés\nLa vente d'un produit est supérieure au stock lui étant associée.';
    		alert(ErrMsg);
    	}
     
    	return flag;
    }
    ça ne fonctionne pas. Est ce que j'emploie le *1 comme il faut où est ce que vous pensez que dans
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    document.forms[\"venteform\"].elements[\"svAv\"].value*1
    svAv ne prend pas la valeur sv19 (pour exemple).

    Sinon dans le reste de l'application, dont j'ai repris le développement, tous les éléments sont récupérés avec document.forms['nomduform'].nomdelelement et ca fontionne. Cela pose t'il un problème. C'est une application à usage interne , à utiliser uniquement avec firefox.

  7. #7
    Expert éminent

    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    13 474
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2007
    Messages : 13 474
    Par défaut
    Citation Envoyé par PKO06 Voir le message
    J'ai donc corrigé. (\" car stocké dans une variable php)
    Oui mais on ne devrait pas retrouver ici les caractères de protection (\) puisque ça semble être le code généré

    A+

  8. #8
    Membre confirmé Avatar de PKO06
    Profil pro
    Étudiant
    Inscrit en
    Octobre 2006
    Messages
    91
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2006
    Messages : 91
    Par défaut
    Non vraiment aucun problème de se coté là .. en php :

    j'ai une class page.

    $page = new page();

    <script type="text/javascript" language="JavaScript">
    <!--
    '.$this->javascirpt.'
    // -->
    </script>

    et dans le fichier

    $page->javascirpt .= " ... ";

    C'est très peu clair, assez complexe mais ça fonctionne très bien.

  9. #9
    Membre Expert
    Inscrit en
    Septembre 2002
    Messages
    2 307
    Détails du profil
    Informations forums :
    Inscription : Septembre 2002
    Messages : 2 307
    Par défaut
    svAv = "sv"+counter;
    spAv = "sp"+counter;
    encore des quotes...
    ps 1 : regarde la console et corrige.
    ps 2 : la variable svAv n'a pas besoin de quote mais les caines de caractères oui.

  10. #10
    Membre confirmé Avatar de PKO06
    Profil pro
    Étudiant
    Inscrit en
    Octobre 2006
    Messages
    91
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2006
    Messages : 91
    Par défaut
    Ok merci, corrigé à nouveau ... fonctionnel toujours pas.
    Le problème c'est que je code avec eclipse+phpeclipse. Comme mon code javascript est stocké dans une variable php ... je n'ai aucune coloration syntaxique.

  11. #11
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 658
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 658
    Billets dans le blog
    1
    Par défaut
    mets nous le code généré ...

    et pour les " c'est que tu code mal ton php ...
    une variable ph doit être entre ' ' ...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $variable= 'document.forms["venteform"].elements["svAv"].value*1'
    comme ça la syntaxe html / javascript est respectée
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

  12. #12
    Membre confirmé Avatar de PKO06
    Profil pro
    Étudiant
    Inscrit en
    Octobre 2006
    Messages
    91
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2006
    Messages : 91
    Par défaut
    Je vous donne mon code généré :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
     
    function checkscript(){
    	flag_alert = false;
    	flag = true;
    	var ErrMsg;
    	var counter;
    	var svAv;
    	var spAv;		
     
    	for (counter = 0; counter <= (document.forms["venteform"].elements["val_de_inc"].value)*1; counter++){
    		svAv = "sv"+counter;
    		spAv = "sp"+counter;
    		if(document.forms["venteform"].elements["svAv"].value*1>document.forms["venteform"].elements["spAv"].value*1){
    			flag_alert=true;
    			break;
    		}
    	}
     
    	if(flag_alert == true){
    		flag = false;
    		ErrMsg = 'Les ventes ne peuvent pas être sauvegardées.';
    		alert(ErrMsg);
    	}
     
    	return flag;
    }
    Merci pour votre aide.

  13. #13
    Membre Expert
    Inscrit en
    Septembre 2002
    Messages
    2 307
    Détails du profil
    Informations forums :
    Inscription : Septembre 2002
    Messages : 2 307
    Par défaut
    if(document.forms["venteform"].elements[svAv].value*1>document.forms["venteform"].elements[spAv].value*1){
    sans quote!

  14. #14
    Membre confirmé Avatar de PKO06
    Profil pro
    Étudiant
    Inscrit en
    Octobre 2006
    Messages
    91
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2006
    Messages : 91
    Par défaut
    Sans les quotes cela revient au même ... rien
    J'ai utilisé une méthode bourrin.

    J'ai généré mon code javascript en php :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
     
    $scriptJS = '
     function checkscript(){
    		flag_alert = false;
    		flag = true;
    		var ErrMsg;
    		var svAv;
    		var spAv;
    		var stop = 1;
    		while (stop > 0){
    			';
    			for ($i=0 ; $i <= $inc; $i++){
    				$svAv = "sv".$i;
    				$spAv = "sp".$i;
    				$verifScript .='	if((document.forms["venteform"].elements["'.$svAv.'"].value)*1>(document.forms["venteform"].elements["'.$spAv.'"].value)*1){
    			flag_alert=true;
    			break;
    		}
    	';
    			}
    	$verifScript .='
    		stop = 1;
    		}
    		if(flag_alert == true){
    			flag = false;
    			ErrMsg = "Les ventes ne peuvent pas être sauvegardées.";
    			alert(ErrMsg);
    		}
     
    		return flag;
    	}
    	</script>
    	';
    Un extrait du code généré :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
     
    function checkscript(){
    		flag_alert = false;
    		flag = true;
    		var ErrMsg;
    		var svAv;
    		var spAv;
    		var stop = 1;
    		while (stop > 0){
    				if((document.forms["venteform"].elements["sv0"].value)*1>(document.forms["venteform"].elements["sp0"].value)*1){
    			flag_alert=true;
    			break;
    		}
    		if((document.forms["venteform"].elements["sv1"].value)*1>(document.forms["venteform"].elements["sp1"].value)*1){
    			flag_alert=true;
    			break;
    		}
    		if((document.forms["venteform"].elements["sv2"].value)*1>(document.forms["venteform"].elements["sp2"].value)*1){
    			flag_alert=true;
    			break;
    		}
    		if((document.forms["venteform"].elements["sv3"].value)*1>(document.forms["venteform"].elements["sp3"].value)*1){
    			flag_alert=true;
    			break;
    		}
                    ...
                    stop = 1;
               }
              if(flag_alert == true){
    			flag = false;
    			ErrMsg = "Les ventes ne peuvent pas être sauvegardées.";
    			alert(ErrMsg);
    		}
     
    		return flag;
    	}
    C'est pas beau mais ça fonctionne.

  15. #15
    Expert éminent

    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    13 474
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2007
    Messages : 13 474
    Par défaut
    Citation Envoyé par PKO06 Voir le message
    Sans les quotes cela revient au même ... rien
    C'est peut-être que ton code HTML ne correspond pas à ce que laisse supposer ton code JS ....

    A+

  16. #16
    Membre confirmé Avatar de PKO06
    Profil pro
    Étudiant
    Inscrit en
    Octobre 2006
    Messages
    91
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2006
    Messages : 91
    Par défaut
    Effectivement.
    Je colle un petit morceau de mon code.
    C'est un tableau ... c'est très laid étant donnée que mon php me génère un tableau d'environ 35*3 sur une ligne

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <tr><td>ADAM</td><input type="hidden" name="cp3" value="161-10"><td><select name="sp3"><option value="0">0</option><option selected value="1">1</option><option value="2">2</option><option value="3">3</option><option value="4">4</option><option value="5">5</option><option value="6">6</option><option value="7">7</option><option value="8">8</option><option value="9">9</option><option value="10">10</option><option value="11">11</option><option value="12">12</option><option value="13">13</option><option value="14">14</option><option value="15">15</option><option value="16">16</option><option value="17">17</option><option value="18">18</option><option value="19">19</option><option value="20">20</option><option value="21">21</option><option value="22">22</option><option value="23">23</option><option value="24">24</option><option value="25">25</option><option value="26">26</option><option value="27">27</option><option value="28">28</option><option value="29">29</option><option value="30">30</option><option value="31">31</option><option value="32">32</option><option value="33">33</option><option value="34">34</option><option value="35">35</option><option value="36">36</option><option value="37">37</option><option value="38">38</option><option value="39">39</option></select><select name="sv3"><option selected value="0">0</option></select> com : 0 &nbsp;Montant vente : 0</td><input type="hidden" name="cp4" value="161-11"><td>...

  17. #17
    Expert éminent

    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    13 474
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2007
    Messages : 13 474
    Par défaut
    Tu n'as bien qu'un seul "cp1", un seul "cp2" etc.
    Ou bien un par ligne du tableau ?

    A+

  18. #18
    Membre confirmé Avatar de PKO06
    Profil pro
    Étudiant
    Inscrit en
    Octobre 2006
    Messages
    91
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2006
    Messages : 91
    Par défaut
    Je n'en ai qu'un seul pour chaque cp, sp, et sv.
    Je les ai numéroté pour pouvoir les récupérer après un POST.

  19. #19
    Expert éminent

    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    13 474
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2007
    Messages : 13 474
    Par défaut
    Alors d'après ton code, avec la dernière correction donnée par Matthieu2000, ça aurait dû être bon

    Tu es sûr de n'avoir enlever les quottes qu'au bon endroit (par exemple pas celles de "venteform") ?

    PS : tu es sûr aussi que la ligne générée n'est pas "trop longue" ?
    y a une limite, je crois (mais laquelle ?) ....

    A+

  20. #20
    Membre confirmé Avatar de PKO06
    Profil pro
    Étudiant
    Inscrit en
    Octobre 2006
    Messages
    91
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2006
    Messages : 91
    Par défaut
    Merci pour l'aide ça fait plaisir.
    Pour la ligne a priori pas de problème puisque j'arrive à sauvegarder toutes les valeurs dans la base.
    Je vais réessayer pour m'assurer de ne pas avoir laissé passer une faute d'inattention (de plus).

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. Accès aux éléments du DOM chargés dynamiquement
    Par baldeadama dans le forum jQuery
    Réponses: 1
    Dernier message: 27/09/2014, 15h26
  2. [AJAX] Accès à mes éléments DOM
    Par baldeadama dans le forum jQuery
    Réponses: 12
    Dernier message: 16/09/2014, 22h32
  3. [DOM] HTMLTableRowElement -> accés aux colonnes
    Par klem02 dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 19/07/2007, 15h27
  4. [DOM] DOM : Récupérer un élément parent
    Par atar64 dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 10/07/2007, 09h34
  5. [DOM] ciblage d'un élément
    Par unplugged dans le forum Bibliothèques et frameworks
    Réponses: 1
    Dernier message: 28/03/2007, 17h39

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo