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 :

Automatiser renseignement variable


Sujet :

JavaScript

  1. #21
    Expert éminent

    Avatar de vermine
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    6 582
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2008
    Messages : 6 582
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    var i=1;
    window["ent"+i] = 33;
    alert("Valeur = "+ ent1);

  2. #22
    Membre confirmé
    Étudiant
    Inscrit en
    Mai 2010
    Messages
    176
    Détails du profil
    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2010
    Messages : 176
    Par défaut
    Hahaha! j'ai trouvé =D

    Voici la réponse:
    var i = 1;
    var enX = 'en'+i;

    //alert("le champ a pour valeur : "+enX);

    if(eval(enX) == rep1)

    (et comme mon if fonctionne, j'imagine que c'est que ça marche

    Merci a vous!
    Benjamin

  3. #23
    Membre confirmé
    Étudiant
    Inscrit en
    Mai 2010
    Messages
    176
    Détails du profil
    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2010
    Messages : 176
    Par défaut
    Baaaa je suis bete,je me suis perdu dans mon code. En faite mon probleme est toujours pas résolus...

    Mon but est de remplacer:
    var rep1 = "bonjour";
    Par
    var i = 1;
    var "rep"+i = "bonjour";

    Et ça, je n'y arrive toujours pas...

  4. #24
    Expert éminent

    Avatar de vermine
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    6 582
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2008
    Messages : 6 582
    Par défaut
    Citation Envoyé par vermine Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    var i=1;
    window["ent"+i] = 33;
    alert("Valeur = "+ ent1);

  5. #25
    Membre confirmé
    Étudiant
    Inscrit en
    Mai 2010
    Messages
    176
    Détails du profil
    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2010
    Messages : 176
    Par défaut
    Bon, je ne veux pas crier victoire trop vite mais je crois que grace a toi, ça marche.

    VOici le code:
    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
    var i = 1;
     
    window["en"+i] = document.getElementById(idfiche+idact+"ennonce_1").value;
    window["rep"+i] = document.getElementById(idfiche+idact+"rep_1").value;
     
    var enX = 'en'+i;
    var repX = 'rep'+i;
     
     
     
    if(eval(enX) == eval(repX))
    {
    document.getElementById(idfiche+idact+"ennonce_1").style.backgroundColor=color_juste;
    scoreexosl_1_enonce1 ++;
    }
    else document.getElementById(idfiche+idact+"ennonce_1").style.backgroundColor=color_faux;
    Je vous tiens au courant si ça fonctionne correctement.

  6. #26
    Expert éminent

    Avatar de vermine
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    6 582
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2008
    Messages : 6 582
    Par défaut
    Pourquoi ne faites-vous pas:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    if(window["en"+i] == window["rep"+i])

  7. #27
    Membre confirmé
    Étudiant
    Inscrit en
    Mai 2010
    Messages
    176
    Détails du profil
    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2010
    Messages : 176
    Par défaut
    Sortez le champagne, tout va bien

    Voici donc le code qui permet de corriger des exercices differents graces a des variable d'id_fiche et autre.

    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
    function correctionexotest()
    {
    	for (i=1; i<=eval(nbcase); i++)
    	{
    		window["en"+i] = document.getElementById(idfiche+idact+"ennonce_"+i).value;
    		window["rep"+i] = document.getElementById(idfiche+idact+"rep_"+i).value;
     
    		var enX = 'en'+i;
    		var repX = 'rep'+i;
     
     
    			if(eval(enX) == eval(repX))
    			{
    				document.getElementById(idfiche+idact+"ennonce_"+i).style.backgroundColor=color_juste;
    				scoreexosl_1_enonce1 ++;
    			}
    				else document.getElementById(idfiche+idact+"ennonce_"+i).style.backgroundColor=color_faux;
    	} 
     
     
    difscoreexosl_1_enonce1 = eval(nbcase) - scoreexosl_1_enonce1;
     
    parent.document["score_"+idfiche+"enonce1"] = scoreexosl_1_enonce1;
     
    if ((difscoreexosl_1_enonce1 == 1) || (difscoreexosl_1_enonce1 == 0))
    {
    alert("Ton score est de : "+scoreexosl_1_enonce1+"/5. Tu as donc fait : "+difscoreexosl_1_enonce1+" erreur.");
    }
    else
    alert("Ton score est de : "+scoreexosl_1_enonce1+"/5. Tu as donc fait : "+difscoreexosl_1_enonce1+" erreurs.");
     
     
    }
    Un grand merci a Vermine qui m'a beaucoup aidé et a andry.aime qui a plusieurs fois essayer de me mettre sur la voie.

    Merci a vous deux!

  8. #28
    Membre confirmé
    Étudiant
    Inscrit en
    Mai 2010
    Messages
    176
    Détails du profil
    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2010
    Messages : 176
    Par défaut
    Recoucou,

    Voici la fonction mise a jour avec le IF de vermine:
    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
    function correctionexo()
    {
    	for (i=1; i<=eval(nbcase); i++)
    	{
    		window["en"+i] = document.getElementById(idfiche+idact+"ennonce_"+i).value;
    		window["rep"+i] = document.getElementById(idfiche+idact+"rep_"+i).value;
     
     
    			if(window["en"+i] == window["rep"+i])
    			{
    				document.getElementById(idfiche+idact+"ennonce_"+i).style.backgroundColor=color_juste;
    				scoreexosl_1_enonce1 ++;
    			}
    				else document.getElementById(idfiche+idact+"ennonce_"+i).style.backgroundColor=color_faux;
    	} 
     
     
     
     
    difscoreexosl_1_enonce1 = eval(nbcase) - scoreexosl_1_enonce1;
     
    parent.document["score_"+idfiche+"enonce1"] = scoreexosl_1_enonce1;
     
    if ((difscoreexosl_1_enonce1 == 1) || (difscoreexosl_1_enonce1 == 0))
    {
    alert("Ton score est de : "+scoreexosl_1_enonce1+"/5. Tu as donc fait : "+difscoreexosl_1_enonce1+" erreur.");
    }
    else
    alert("Ton score est de : "+scoreexosl_1_enonce1+"/5. Tu as donc fait : "+difscoreexosl_1_enonce1+" erreurs.");
     
     
    }
    Mais il me reste un probleme, au moment ou dans le code il y a
    "scoreexosl_1_enonce1 ++;"
    Il faudrai a la place:
    idfiche+idact+"score" ++

    Est-ce possible?
    Merci,
    benjamin

  9. #29
    Expert éminent

    Avatar de vermine
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    6 582
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2008
    Messages : 6 582
    Par défaut Je suis perdu
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    window[idfiche+idact+"score"] =  window[idfiche+idact+"score"] + 1;
    ?

  10. #30
    Membre confirmé
    Étudiant
    Inscrit en
    Mai 2010
    Messages
    176
    Détails du profil
    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2010
    Messages : 176
    Par défaut
    Han! j'etait tout content d'avoir trouver tout seul, le temps de venir poster tu as mis la solution^^

    Enfin, merci beaucoup.
    Voici ce que j'avai trouvé:
    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
    function correctionexo()
    {
    	for (i=1; i<=eval(nbcase); i++)
    	{
    		window["en"+i] = document.getElementById(idfiche+idact+"ennonce_"+i).value;
    		window["rep"+i] = document.getElementById(idfiche+idact+"rep_"+i).value;
     
     
    			if(window["en"+i] == window["rep"+i])
    			{
    				document.getElementById(idfiche+idact+"ennonce_"+i).style.backgroundColor=color_juste;
    				scoreexosl_1_enonce1 ++;
    				window[idfiche+idact+"score"] ++;
    			}
    				else document.getElementById(idfiche+idact+"ennonce_"+i).style.backgroundColor=color_faux;
    	} 
     
    //eval(idfiche+idact+"score");
     
    alert (window[idfiche+idact+"score"]);
     
    difscoreexosl_1_enonce1 = eval(nbcase) - scoreexosl_1_enonce1;
     
    parent.document[idfiche+idact+"score"] = window[idfiche+idact+"score"];
    parent.document["score_"+idfiche+"enonce1"] = scoreexosl_1_enonce1;
     
    if ((difscoreexosl_1_enonce1 == 1) || (difscoreexosl_1_enonce1 == 0))
    {
    alert("Ton score est de : "+scoreexosl_1_enonce1+"/5. Tu as donc fait : "+difscoreexosl_1_enonce1+" erreur.");
    }
    else
    alert("Ton score est de : "+scoreexosl_1_enonce1+"/5. Tu as donc fait : "+difscoreexosl_1_enonce1+" erreurs.");
     
     
    }
    Encore une fois, merci =D

  11. #31
    Membre confirmé
    Étudiant
    Inscrit en
    Mai 2010
    Messages
    176
    Détails du profil
    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2010
    Messages : 176
    Par défaut
    Et voici donc
    (*roulement de tambour*)

    Le code entièrement dynamique pour correspondre a touts les exercices de mon site!

    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
    37
    38
    39
    40
    41
    42
    function reponse_1_enonce1()
    {
    display('sol_1');
    }
     
     
     
     
     
    function correctionexo()
    {
    	for (i=1; i<=eval(nbcase); i++)
    	{
    		window["en"+i] = document.getElementById(idfiche+idact+"ennonce_"+i).value;
    		window["rep"+i] = document.getElementById(idfiche+idact+"rep_"+i).value;
     
     
    			if(window["en"+i] == window["rep"+i])
    			{
    				document.getElementById(idfiche+idact+"ennonce_"+i).style.backgroundColor=color_juste;
    				window[idfiche+idact+"score"] ++;
    			}
    				else document.getElementById(idfiche+idact+"ennonce_"+i).style.backgroundColor=color_faux;
    	} 
     
     
     
    window[idfiche+idact+"erreur"] = eval(nbcase) - window[idfiche+idact+"score"];
     
    parent.document[idfiche+idact+"score"] = window[idfiche+idact+"score"];
    parent.document[idfiche+idact+"erreur"] = window[idfiche+idact+"erreur"];
    //parent.document["score_"+idfiche+"enonce1"] = scoreexosl_1_enonce1;
     
    if ((window[idfiche+idact+"erreur"] == 1) || (window[idfiche+idact+"erreur"] == 0))
    {
    alert("Ton score est de : "+window[idfiche+idact+"score"]+"/5. Tu as donc fait : "+window[idfiche+idact+"erreur"]+" erreur.");
    }
    else
    alert("Ton score est de : "+window[idfiche+idact+"score"]+"/5. Tu as donc fait : "+window[idfiche+idact+"erreur"]+" erreurs.");
     
     
    }
    MERCI TOUT LE MONDE

  12. #32
    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 659
    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 659
    Billets dans le blog
    1
    Par défaut
    heu ...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    if (document.getElementById(idfiche+idact+"ennonce_"+i).value ==document.getElementById(idfiche+idact+"rep_"+i).value )
    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 !

  13. #33
    Membre confirmé
    Étudiant
    Inscrit en
    Mai 2010
    Messages
    176
    Détails du profil
    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2010
    Messages : 176
    Par défaut
    En effet, ça marche tres bien et c'est plus simple.
    Merci beaucoup pour cette amélioration

  14. #34
    Membre confirmé
    Étudiant
    Inscrit en
    Mai 2010
    Messages
    176
    Détails du profil
    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2010
    Messages : 176
    Par défaut
    Bonjour, je voudrai passer des parametres a ma fonction.

    Avant, j'avai ça:
    var idact="act_1_";
    var nbcase=5;
    <a href="#[1]" onclick=correctionexo() >

    et dans ma fonction correctionexo, les variables idact et nbcases etaient utilisée.

    Pour des raisons pratique, je voudrai mettre ces variables en parametre donc faire:
    //var idact="act_1_";
    //var nbcase=5;
    <a href="#[1]" onclick=correctionexo(idact="act_1_", nbcase=5) >

    Mais curieusement, si je le fait qu'avec idact ça fonctionne, mais quand je le fait avec les 2 ça ne marche plus.
    La façon d'ecrire mes paramètres est elle incorecte?
    Merci,
    Benjamin

  15. #35
    Expert éminent

    Avatar de vermine
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    6 582
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2008
    Messages : 6 582
    Par défaut
    Moui quoique votre tentative me fais m'interroger sur certaines possibilités (dangereuses).

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    <script>
    var idact="act_1_";
    var nbcase=5;
    </script>
     
    <a href="#[1]" onclick="correctionexo(idact, nbcase);" >
    Voire même ceci, ce sera plus adéquat pour votre utilisation:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <a href="#[1]" onclick="correctionexo('act_1_', 5);" >

  16. #36
    Membre confirmé
    Étudiant
    Inscrit en
    Mai 2010
    Messages
    176
    Détails du profil
    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2010
    Messages : 176
    Par défaut
    Je me pose une question, avec votre 2° solution, comment la fonction sait quelle variable doit récupérer 'act_1_' et 5?

    La premiere ne marcherai pas car sur la meme page j'ai plusieurs fois cette ligne:7

    <a href="#[1]" onclick="correctionexo();" >
    Et le but est de faire en sorte qu'il y ai quelque chose du type:
    <a href="#[1]" onclick="correctionexo('act_1_', 5);" >
    <a href="#[1]" onclick="correctionexo('act_2_', 7);" >
    <a href="#[1]" onclick="correctionexo('act_3_', 10);" >

    Merci.

  17. #37
    Expert éminent

    Avatar de vermine
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    6 582
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2008
    Messages : 6 582
    Par défaut
    Petite explication.

    J'appelle une fonction avec des paramètres:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    var param2 = "valeur2";
    correctionexo("valeur1", param2);  //Soit je mets une valeur en dure, soit j'ai une variable déclarée autre part. Peu importe, les deux sont permis
    Dans la fonction, je reçois les paramètres:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    function correctionexo(p1, p2) //je peux même les nommer autrement
    {
        alert(p1); //valeur1
        alert(p2); //valeur2	
    }
    Comprenez bien ce principe et ensuite ça ira comme sur des roulettes pour implémenter ce dont vous avez besoin.

  18. #38
    Membre confirmé
    Étudiant
    Inscrit en
    Mai 2010
    Messages
    176
    Détails du profil
    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2010
    Messages : 176
    Par défaut
    Voici le bon code:
    <a href="#[1]" onclick="correctionexo(idact='act_1_', nbcase=5);" >

    Merci vermine de m'avoir mis sur la voie

  19. #39
    Expert éminent

    Avatar de vermine
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    6 582
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2008
    Messages : 6 582
    Par défaut
    C'est démoniaque votre bazarre mais ça marche.

    Sauf qu'à mon avis vous ne comprenez pas ce que vous faites. Là, à mon sens, vous avez défini des variables globales (idact et nbcase), puis vous avez passé des paramètres à la fonction, tout en les initialisant, c'est-à-dire en initialisant les variables globales. Et, soit dit en passant, votre fonction n'attend aucun paramètre (sauf si vous avez changez le code).


    Ne pas confondre:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    //variable globale
    var aaa = "variable globale";
    ma_fonction();
     
    function ma_fonction()
    {
       alert(aaa); //variable globale
       aaa = "essai";
       alert(aaa); //essai
    }
     
    alert(aaa); //essai
    avec:

    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
     
    //paramètre
    var aaa = "paramètre";
    ma_fonction(aaa);
     
    function ma_fonction(bbb)
    {
       alert(bbb); //paramètre
       var variable_locale = bbb;
       alert(variable_locale); //paramètre
       variable_locale = "test";
       alert(variable_locale): //test
    }
     
    alert(aaa); //paramètre
    alert(variable_locale); //undefined

  20. #40
    Membre confirmé
    Étudiant
    Inscrit en
    Mai 2010
    Messages
    176
    Détails du profil
    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2010
    Messages : 176
    Par défaut
    En fait, j'ai comenté mes variable au debut de mon code:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    <SCRIPT LANGUAGE="JavaScript">
            var idfiche="sl_1_";
    		//var idact="act_1_";
    		//var nbcase=5;
            //alert(eval(idfiche+"support");
            </script>
    Je pense donc que c'est pour ça que ce code fonctionne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <a href="#[1]" onclick="correctionexo(idact='act_1_', nbcase=5);" >
    (j'ai bien aimé le "C'est démoniaque votre bazarre mais ça marche. )

    J'ai conscience de ne pas coder dans "les regles de l'art" mais j'en suis a un point "d'aprentissage", je me contente de faire e sorte que ça marche pour l'instant.
    Avec l'experience, je ferai du code "tout beau tout propre"

+ Répondre à la discussion
Cette discussion est résolue.
Page 2 sur 2 PremièrePremière 12

Discussions similaires

  1. Réponses: 6
    Dernier message: 18/04/2007, 11h47
  2. [VBA-E] Automatisation Variable
    Par nono le golfeur dans le forum Macros et VBA Excel
    Réponses: 9
    Dernier message: 21/03/2007, 13h33
  3. [PHP-JS] Renseigner une variable php dans une fonction JS
    Par gwen-al dans le forum Général JavaScript
    Réponses: 6
    Dernier message: 14/04/2006, 08h31
  4. [Tomcat 5] automatisation des variables d'environnement
    Par blacksheep dans le forum Tomcat et TomEE
    Réponses: 1
    Dernier message: 08/09/2005, 13h58
  5. Comment renseigner la variable autocommit dans my.ini
    Par Charroin dans le forum SQL Procédural
    Réponses: 5
    Dernier message: 18/09/2003, 15h23

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