Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 var i=1; window["ent"+i] = 33; alert("Valeur = "+ ent1);
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 var i=1; window["ent"+i] = 33; alert("Valeur = "+ ent1);
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
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...
Bon, je ne veux pas crier victoire trop vite mais je crois que grace a toi, ça marche.
VOici le code:
Je vous tiens au courant si ça fonctionne correctement.
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;![]()
Pourquoi ne faites-vous pas:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 if(window["en"+i] == window["rep"+i])
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.
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.
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."); }
Merci a vous deux!![]()
Recoucou,
Voici la fonction mise a jour avec le IF de vermine:
Mais il me reste un probleme, au moment ou dans le code il y a
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."); }
"scoreexosl_1_enonce1 ++;"
Il faudrai a la place:
idfiche+idact+"score" ++
Est-ce possible?
Merci,
benjamin![]()
?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 window[idfiche+idact+"score"] = window[idfiche+idact+"score"] + 1;![]()
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é:
Encore une fois, merci =D
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."); }
Et voici donc
(*roulement de tambour*)
Le code entièrement dynamique pour correspondre a touts les exercices de mon site!
MERCI TOUT LE MONDE
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."); }![]()
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 !
En effet, ça marche tres bien et c'est plus simple.
Merci beaucoup pour cette amélioration![]()
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
Moui quoique votre tentative me fais m'interroger sur certaines possibilités (dangereuses).
Voire même ceci, ce sera plus adéquat pour votre utilisation:
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);" >
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 <a href="#[1]" onclick="correctionexo('act_1_', 5);" >
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.
Petite explication.
J'appelle une fonction avec des paramètres:
Dans la fonction, je reçois les 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
Comprenez bien ce principe et ensuite ça ira comme sur des roulettes pour implémenter ce dont vous avez besoin.
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 }![]()
Voici le bon code:
<a href="#[1]" onclick="correctionexo(idact='act_1_', nbcase=5);" >
Merci vermine de m'avoir mis sur la voie![]()
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:
avec:
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
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
En fait, j'ai comenté mes variable au debut de mon code:
Je pense donc que c'est pour ça que ce code fonctionne
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>
(j'ai bien aimé le "C'est démoniaque votre bazarre mais ça marche.
Code : Sélectionner tout - Visualiser dans une fenêtre à part <a href="#[1]" onclick="correctionexo(idact='act_1_', nbcase=5);" >)
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"![]()
Partager