bebertii

Générateur de questionnaire E3C NSI

Aug 29th, 2020
2,602
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. <html>
  2. <head>
  3.     <meta charset="utf-8">
  4.     <style>
  5.         .theme{
  6.             background-color:#c0ffc0;
  7.             padding:0.5em;
  8.             border-radius:1em;
  9.             text-align:center;
  10.        
  11.         }
  12.         table{
  13.             border-collapse:collapse;
  14.         }
  15.         td{
  16.             border:solid;
  17.             padding:0.5em;
  18.             text-align:center;
  19.             vertical-align:middle;
  20.            
  21.         }
  22.         .question{
  23.             border:solid;
  24.             border-color:#c0c0c0;
  25.             border-radius:0.5em;
  26.             padding : 0.25em;
  27.         }
  28.         .question_enonce{
  29.            
  30.         }
  31.         .validation{
  32.             text-align:right;
  33.         }
  34.         .sujet{
  35.             border-radius:0.5em;
  36.             padding:0.25em;
  37.             border:solid;
  38.            
  39.             margin : .25em 0em 0.25em 0em;
  40.        
  41.         }
  42.         .reponse{
  43.             background-color:e0e0e0;
  44.             border-radius:0.5em;
  45.             padding : 0.25em;
  46.             margin : 0.25em;
  47.             float : left;
  48.            
  49.         }
  50.         .reponse_fin{
  51.             clear:both;
  52.         }
  53.         .dock_reponse{
  54.            
  55.         }
  56.     </style>
  57. </head>
  58. <body>
  59. <div id="e3c_container"></div>
  60. <script src="liste.js"></script>
  61. <script>
  62. questionnaire="";
  63. intitule_themes=["Thème A : Types de base","Thème B : Types construits","Thème C : Traitement de données en tables","Thème D : Interactions entre l'homme et la machine sur le Web","Thème E : Architectures matérielles et systèmes d'exploitation","Thème F : Langages et programmation","Thème G : Algorithmique"]
  64. document.addEventListener("load",affiche_questionnaire());
  65. function affiche_questionnaire(){
  66.     for (var i=0;i<1;i++){//Seul le thème A est affiché, je n'ai pas encore corrigé les autres questions
  67.         console.log("début thème : "+i)
  68.         questionnaire +="<div class='theme'>"+intitule_themes[i]+"</div>";
  69.         questionnaire +=affiche_theme(nsi[i],i);
  70.        
  71.     }
  72.    
  73.     document.getElementById("e3c_container").innerHTML=questionnaire;
  74. }
  75.  
  76. function affiche_theme(theme,num_theme){
  77.     contenu="";
  78.     console.log("nombre de questions du theme "+num_theme+" : "+theme.length);
  79.     for (var i=0;i<theme.length;i++){
  80.         contenu+="<div class='sujet'>"+"Question "+String.fromCharCode(65+num_theme)+"."+(i+1)+" :"+"<div class='question' id=q_"+num_theme+"_"+i+">";
  81.         console.log("Question "+i+" : "+theme[i][0]);
  82.         for (var j=0;j<theme[i][0].length;j++){
  83.            
  84.             contenu+="<div class='question_enonce'>"
  85.             contenu+=theme[i][0][j];
  86.             contenu+="</div>"
  87.         }
  88.        
  89.         contenu+="</div><div class='dock_reponse'>";
  90.         console.log("nombre de réponses de la question +"+i+" du theme "+num_theme+" : "+theme[i][1].length);
  91.         for (var j=0;j<theme[i][1].length;j++){
  92.             contenu+="<div class='reponse' >";
  93.             contenu+="<input type=checkbox name=q_"+num_theme+"_"+i+" id=q_"+num_theme+"_"+i+"_"+j+">"+theme[i][1][j];
  94.             contenu+="</div>";
  95.         }
  96.         contenu+="<div class='reponse_fin'></div>";
  97.         contenu+="<div class='validation'><input type=button value='Valider' onclick='valider("+num_theme+","+i+")'></div>";
  98.         contenu+="</div></div>";
  99.     }
  100.     return contenu;
  101.    
  102. }
  103.  
  104. function valider(num_theme,num_quest){
  105.     possibilites=document.getElementsByName("q_"+num_theme+"_"+num_quest);
  106.     nb_possibilites=possibilites.length;
  107.     console.log(possibilites.length);
  108.     juste=true;
  109.     for (var i=0;i<nb_possibilites;i++){
  110.         doit_etre_coche=false;
  111.        
  112.         for (var j=0;j<nsi[num_theme][num_quest][2].length;j++){
  113.             if(i==nsi[num_theme][num_quest][2][j]){
  114.                
  115.                 doit_etre_coche=true;
  116.             }
  117.         }
  118.         if ((!document.getElementById("q_"+num_theme+"_"+num_quest+"_"+i).checked && doit_etre_coche) ||(document.getElementById("q_"+num_theme+"_"+num_quest+"_"+i).checked && !doit_etre_coche)){
  119.             juste=false;
  120.         }
  121.     }
  122.     if (juste){alert("bravo")}
  123.     else{
  124.         reponse="Il fallait répondre :\n";
  125.         for(var i=0;i<nsi[num_theme][num_quest][2].length;i++){
  126.             reponse+=nsi[num_theme][num_quest][1][nsi[num_theme][num_quest][2][i]]+"\n";
  127.            
  128.         }
  129.         alert(reponse);
  130.     }
  131.    
  132. }
  133.  
  134. </script>
  135. </body>
  136. </html>
RAW Paste Data