Code:
1
2
3
4 var i=1; window["ent"+i] = 33; alert("Valeur = "+ ent1);
Version imprimable
Code:
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 :ccool:
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. :mrgreen:Code:
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:
1
2 if(window["en"+i] == window["rep"+i])
Sortez le champagne, tout va bien :ccool:
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:
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! :mouarf:
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 aCode:
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 :oops:
? :?Code:
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 =DCode:
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! :mrgreen:
MERCI TOUT LE MONDE :ccool:Code:
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:
1
2 if (document.getElementById(idfiche+idact+"ennonce_"+i).value ==document.getElementById(idfiche+idact+"rep_"+i).value )
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:
1
2
3
4
5
6
7 <script> var idact="act_1_"; var nbcase=5; </script> <a href="#[1]" onclick="correctionexo(idact, nbcase);" >
Code:
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:
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:
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. 8O
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). :aie:
Ne pas confondre:
avec:Code:
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:
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 fonctionneCode:
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. 8O ) :mouarf:Code:<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" :ccool: