Haha, en effet, ça marche bien mieux!
Merci:ccool:
Version imprimable
Haha, en effet, ça marche bien mieux!
Merci:ccool:
Alors ça y est, tout fonctionne.
J'aimerai donc maintenant "fignoler" cette amélioraton en y apportant la chose suivante:
J'aimerai que quand l'utilisateur arrive sur la page, s'affiche:
"Pour commencer l'activité, clique: ICI
Prénom:
Pour voir ta fiche de score, clique: ICI"
Et qu'une fois qu'il a entré son prenom que a la place du texte ci-dessus s'affiche:
"Prénom: son_prenom
Pour voir ta fiche de score, clique: ICI
Pour changer d'utilisateur, clique: ICI"
J'ai donc modifier le code comme ceci:
Page HTML:
Et page .js:Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 <span id='spandebutactivite'></span> <br><br> Prénom: <span id='spanprenom'></span> <br> <SCRIPT language="javascript"> document.write("Pour voir ta fiche de score, clique: "); </SCRIPT> <a><href="#" onClick="Montrer(score_document)" > <font color="red">ICI</font></a><br><br> <span id='changeuser'></span>
J'ai donc ajouter un spanID et une fonction changeuser.Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23 function debutactivite(){ var span_activite = document.getElementById('spandebutactivite'); var prenom1 = document.getElementById('spanprenom').innerHTML; if(prenom1 == ""){ span_activite.innerHTML ="Pour commencer l'activité, clique: <a href=\"#\" onclick=\"demandeprenom();\"><font color=red>ICI</font></a>"; } else{ //span_activite.innerHTML = "Pour changer d'utilisateur, clique: <a href=\"#\" onclick=\"demandeprenom();\"><font color=red>ICI</font></a>"; } } function changeuser(){ var span_activite = document.getElementById('spandebutactivite'); var prenom1 = document.getElementById('spanprenom').innerHTML; if(prenom1!=""){ span_activite.innerHTML = "Pour changer d'utilisateur, clique: <a href=\"#\" onclick=\"demandeprenom();\"><font color=red>ICI</font></a>"; } else{ //span_activite.innerHTML = "Pour changer d'utilisateur, clique: <a href=\"#\" onclick=\"demandeprenom();\"><font color=red>ICI</font></a>"; } }
En gros, les modification sont censée dire: si le nom est pas renseigné alors afficher:
"Pour commencer l'activité, clique: ICI
Prénom:
Pour voir ta fiche de score, clique: ICI"
Et si le nom est renseigné, alors afficher:
"Prénom:
Pour voir ta fiche de score, clique: ICI
Pour changer d'utilisateur, clique: ICI"
Le probleme c'est que j'ai bien la premiere étape qui fonctionne mais quand je met le prénom, la ligne "
Pour commencer l'activité, clique: ICI ne disparait pas et la ligne "Pour changer d'utilisateur, clique:ICI" n'apparait pas.
Savez vous pourquoi?
Merci,
Benjamin
Ne confondez pas le HTML:
qui déclare donc un span dont l'identifiant est "changeuser", avec le Javascript qui est une suite d'instructions. Pour appeler la fonction changeuser(), il faut se mettre dans le Javascript et lancer son appel:Code:<span id='changeuser'></span>
Cependant, je trouve inutile de créer une nouvelle fonction. Vous pouvez gérer vos affichages dans la fonction qui demande le prénom.Code:
1
2 changeuser();
Du coup, j'ai voulu suivre votre conseil et tout faire entrer dans une seule fonction. Mais plus rien ne marchai.
Je recommence donc en voulant faire une fonction comme ça:
fonction debutactivite()
Si prenom = vide
alors afficher "Pour debuter ton activité, clique ici
Sinon afficher "Prenom: son_prenom
Pour voir ton score, clique ici
Pour changer d'utilisateur, clique ici"
J'ai donc mis comme code:
Pour HTML:
Et pour .js:Code:
1
2
3
4
5 <script language="javascript"> debutactivite() </script> <span id='spandebutactivite'></span>
Mais rien ne s'affiche.Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14 function debutactivite() { var span_activite = document.getElementById('spandebutactivite'); if(span_prenom.innerHTML == ""){ span_activite.innerHTML ="Pour commencer l'activité, clique ici "; } else { span_activite.innerHTML ="Prenom: <br> Pour voire ton score clique ici <br> Pour changer d'utilisateur clique ici "; } }
Je sais, je suis en train de reprendre tout mais t'as raison quand tu dis qu'il vaut mieux tout mettre dans une seule fonction.
si c'est dans cet ordre là ... normal la focntion est lancée avant l'instanciation du span ...Code:
1
2
3
4
5 <script language="javascript"> debutactivite() </script> <span id='spandebutactivite'></span>
Ah! Je suis tres content, tout fonctionne!
(le seul truc que j'arrive ps a faire, c'est faire une boucle au cas ou l'utilisateur ne rentre pas de nom dans le prompt, si vous avez comment faire, ditesme le svp.)
Sinon, voici le résultat final pour ceux que ça interesse:
Pour HTML:
Et pour .js:Code:
1
2
3
4
5
6 <span id='spanprenom'></span> <span id='spandebutactivite'></span> <script language="javascript"> debutactivite() </script>
Un merci tout particulier a vermine et SpaceFrog qui m'ont beaucoup aidé pour réaliser ce bout de code. :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 function debutactivite() { var span_activite = document.getElementById('spandebutactivite'); var span_prenom = document.getElementById('spanprenom'); if(span_prenom.innerHTML == ""){ span_activite.innerHTML ="Pour commencer l'activité, clique: <a href=\"#\" onclick=\"demandeprenom();\"><font color=red>ICI</font></a>"; } } function demandeprenom() { var span_activite = document.getElementById('spandebutactivite'); var span_prenom = document.getElementById('spanprenom'); var prenom1=prompt("Bonjour, commence par indiquer ton prénom :",""); span_activite.innerHTML ="Prenom: " +prenom1+ " <br> Pour voire ton score, clique:<a href=\"#\" onclick=\"Montrer(score_document);\"><font color=red>ICI</font></a> <br> Pour changer d'utilisateur clique:<a href=\"#\" onclick=\"demandeprenom();\"><font color=red>ICI</font></a>"; }
Au tout début vous boucliez sur le prompt tant qu'il renvoyait vide. Vous pouvez le refaire. Mais à vous de voir si l'utilisateur peut ou ne peut pas décider que finalement il ne voulais pas entrer de nom.
J'ai une autre question:
J'ai une fonction qui me permet de corriger un exervcice.
Dedans j'y ai la variable :
Je travail dessus et a la fin de la fonction j'ai:Code:
1
2 var scoreexosl_1_enonce1 = 0; var difscoreexosl_1_enonce1 = 0;
Code:
1
2 difscoreexosl_1_enonce1 = 5 - scoreexosl_1_enonce1; alert("Ton score est de : "+scoreexosl_1_enonce1+"/5. Tu as donc fait : "+difscoreexosl_1_enonce1+" érreures.");
Je voudrai ensuite mettre le résultat des ces variables dans un tableau j'ai donc essyé de mettre ça dans le code de ma fonction (tout a la fin)
Et j'ai déclarerCode:
1
2 return difscoreexosl_1_enonce1; return scoreexosl_1_enonce1;
Dans mon fichiers variavbles.jsCode:
1
2 var scoreexosl_1_enonce1 = ""; var difscoreexosl_1_enonce1 = "";
Malgres ça, dans mon tableau, j'ai la valeur "undefined" qui s'affiche.
ça veut surement dire qu'il ne parvient pas a recuperer les valeurs des fonctions.
Savez vous comment faire?
Merci,
Benjamin
dés le premier return on quitte la fonction
Bonjour,
Même si le problème n'est plus le même qu'au début, je pense que le titre du post convient toujours. Je laisse le libre arbitre aux modérateurs de scinder les deux problèmes ou non.
Avant que je n'oublie, dans votre message d'alert, il y a une faute:
Ca s'écrit:Citation:
érreures
;)Citation:
erreurs
Cela étant dit, revenons-en à nos moutons. Tout d'abord, une fonction ne retournera qu'une seule valeur, donc votre second return ne sera pas exécuté:
Mais je ne pense pas qu'il faille faire un retour. J'aimerais voir le code du tableau afin de vous proposer une méthode pour le remplir.Code:
1
2
3 return difscoreexosl_1_enonce1; return scoreexosl_1_enonce1;
Ensuite, je vous conseille de (re)lire attentivement quelques tutoriels Javascript et HTML afin de bien comprendre les différences. Car vous avez beau déclarer des variables globales Javascript, elles ne seront connues que par Javascript, et non pas par votre tableau (HTML, je suppose). Par contre, Javascript peut remplir les champs HTML comme nous l'avons fait précédemment.
En fait, j'ai réussi a afficher une variable dans mon tableau car il est fait comme ceci:
Page HTML:
C'est les lignesCode:
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 <HTML> <HEAD> <TITLE>Accompagenement scolaire </TITLE> <link href="./crdp.css" rel="stylesheet" type="text/css"> <SCRIPT LANGUAGE="JavaScript" SRC="./variables.js"></script> <SCRIPT LANGUAGE="JavaScript" SRC="./fonctions.js"></script> <SCRIPT LANGUAGE="JavaScript"> var idfiche="score_"; //alert(eval(idfiche+"support"); </script> <script type="text/javascript" language="javascript" src="./test/lytebox.js"></script> <link rel="stylesheet" href="./test/lytebox.css" type="text/css" media="screen" /> </HEAD> <body id="idfiche" class="fiche" onload="initialisation(idfiche); cache('consigne');" scrolling="auto" onMouseOver="affmenulateral();" > <DIV style="OVERFLOW:auto; > <br> <div id="support1" class="support1"><SCRIPT language="javascript">document.write(eval(idfiche+"enonce")); </SCRIPT> <br> <div id="support1" class="support1"><SCRIPT language="javascript">document.write(eval(idfiche+"tableaus_lire")); </SCRIPT> <br> <div id="support1" class="support1"><SCRIPT language="javascript">document.write(eval(idfiche+"tableaus_ecr")); </SCRIPT> </div> </body> </html>
qui appellent mon tableau.Code:
1
2 <br> <div id="support1" class="support1"><SCRIPT language="javascript">document.write(eval(idfiche+"tableaus_lire")); </SCRIPT> <br> <div id="support1" class="support1"><SCRIPT language="javascript">document.write(eval(idfiche+"tableaus_ecr")); </SCRIPT>
Et dans mon .js j'ai:
Code:
1
2 var score_tableaus_lire = "Pour les exercices : 'Savoir lire' <br><br><TABLE BORDER=1 BORDERCOLOR=#000000 CELLPADDING=5 CELLSPACING=0> <TR VALIGN=TOP> <TD class='texte'> Exercice </TD> <TD ><NOBR><span class='texte'> Bonnes réponses </span> </TD> <TD ><span class='texte'> Érreures </TD> </TR> <TR VALIGN=TOP><td><span class='texte'> I. Je lis, jentends, jécris </TD> <TD ><NOBR> </TD> <TD > "+score_titre+" </TD> </TR> <TR VALIGN=TOP><td><span class='texte'> II. Je retrouve l'ordre alphabétique </TD> <TD ><NOBR><span class='texte'> "+scoreexosl_1_enonce1+"; </TD> <TD ><span class='texte'> </TD> <TR VALIGN=TOP><td><span class='texte'> III. Je sais ponctuer et mettre en page un texte </TD> <TD ><NOBR><span class='texte'> </TD> <TD ><span class='texte'> </TD> </TR><TR VALIGN=TOP><td><span class='texte'> IV. Je sais identifier un texte ou un type de document </TD> <TD ><NOBR><span class='texte'> </TD> <TD ><span class='texte'> </TD> </TR><TR VALIGN=TOP><td><span class='texte'> V. Je sais retrouver des informations dans un tableau </TD> <TD ><NOBR><span class='texte'> </TD> <TD ><span class='texte'> </TD> </TR><TR VALIGN=TOP><td><span class='texte'> VI. Je comprends ce que je lis </TD> <TD ><NOBR><span class='texte'> </TD> <TD ><span class='texte'> </TD> </TR><TR VALIGN=TOP><td><span class='texte'> VII. Je comprends ce que dit le texte </TD> <TD ><NOBR><span class='texte'> </TD> <TD ><span class='texte'> </TD> </TR><TR VALIGN=TOP><td><span class='texte'> VIII. J'évalue la richesse de mon vocabulaire </TD> <TD ><NOBR><span class='texte'> </TD> <TD ><span class='texte'> </TD> </TR><TR VALIGN=TOP><td><span class='texte'> IX. Je sais reconnaître les niveaux de langue </TD> <TD ><NOBR><span class='texte'> </TD> <TD ><span class='texte'> </TD> </TR> </TR> </TR></TABLE><br>"; var score_tableaus_ecr = "Pour les exercices : 'Savoir lire pour savoir écrire' <br><br><TABLE BORDER=1 BORDERCOLOR=#000000 CELLPADDING=5 CELLSPACING=0> <TR VALIGN=TOP> <TD class='texte'> Exercice </TD> <TD ><NOBR><span class='texte'> Bonnes réponses </span> </TD> <TD ><span class='texte'> Érreures </TD> </TR> <TR VALIGN=TOP><td><span class='texte'> I. Je sais rédiger un court récit </TD> <TD ><NOBR><span class='texte'> </TD> <TD ><span class='texte'> </TD> </TR> <TR VALIGN=TOP><td><span class='texte'> II. Je sais utiliser les temps du récit </TD> <TD ><NOBR><span class='texte'> </TD> <TD ><span class='texte'> </TD> <TR VALIGN=TOP><td><span class='texte'> III. Je sais distinguer et utiliser ' narrateur ' et 'personnages' </TD> <TD ><NOBR><span class='texte'> </TD> <TD ><span class='texte'> </TD> </TR><TR VALIGN=TOP><td><span class='texte'> IV. Je sais utiliser les indices spatio-temporels </TD> <TD ><NOBR><span class='texte'> </TD> <TD ><span class='texte'> </TD> </TR><TR VALIGN=TOP><td><span class='texte'> V. Je sais différencier et repérer les différents actants </TD> <TD ><NOBR><span class='texte'> </TD> <TD ><span class='texte'> </TD> </TR><TR VALIGN=TOP><td><span class='texte'> VI. Je sais caractériser les personnages d'un récit. </TD> <TD ><NOBR><span class='texte'> </TD> <TD ><span class='texte'> </TD> </TR><TR VALIGN=TOP><td><span class='texte'> VII. Je sais identifier les caractéristiques d'un texte de théâtre </TD> <TD ><NOBR><span class='texte'> </TD> <TD ><span class='texte'> </TD> </TR><TR VALIGN=TOP><td><span class='texte'>  VIII. Je sais faire la différence entre un dialogue dans un récit et un dialogue de théâtre </TD> <TD ><NOBR><span class='texte'> </TD> <TD ><span class='texte'> </TD> </TR><TR VALIGN=TOP><td><span class='texte'> IX. Je sais reconnaître un texte poétique et écrire un poème </TD> <TD ><NOBR><span class='texte'> </TD> <TD ><span class='texte'> </TD> </TR> </TR> </TR></TABLE><br><TD ><span class='texte'> 2008 </TD> </TR> <TR VALIGN=TOP><td><span class='texte'> Article de Presse </TD> <TD ><NOBR><span class='texte'> La Chèvre de Mr Seguin </TD> <TD ><span class='texte'> Charles PERRAULT </TD> <TD ><span class='texte'> 1866 </TD> </TR> <TR VALIGN=TOP> <TD ><span class='texte'> Conte </TD> <TD ><NOBR><span class='texte'> Le Loup du Mercantour </TD> <TD ><span class='texte'> Alphonse DAUDET </TD> <TD ><span class='texte'> 1697 </TD> </TR> <TR VALIGN=TOP> <TD ><span class='texte'> Fable </TD> <TD><span class='texte'> Le Loup et l'Agneau </TD> <TD ><span class='texte'> Mon Quotidien </TD> <TD ><span class='texte'> 1668 </TD> </TR></TABLE>";
Mais les variables :
difscoreexosl_1_enonce1;
scoreexosl_1_enonce1;
Elees, je n'arrive pas a les afficher.