From 09c0475b7e5c3521a4b148f81de4ced0e2cd74e8 Mon Sep 17 00:00:00 2001 From: Mehdi Date: Thu, 13 Aug 2020 23:16:55 +0200 Subject: [PATCH] =?UTF-8?q?attribution=20num=C3=A9ro=20de=20question(tp,qc?= =?UTF-8?q?m,demo)=20automatique+=20plusieurs=20choix=20possibles=20pour?= =?UTF-8?q?=20les=20QCM?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- BddCorrect/BDD/SqliteDb.php | 23 ++++--- BddCorrect/Traitement/AjoutDemonstration.php | 15 +++-- BddCorrect/Traitement/AjoutQCM.php | 23 +++++-- BddCorrect/Traitement/AjoutQuestion.php | 25 +++++--- BddCorrect/Traitement/CorrectionQCM.php | 54 +++++++++++++++- BddCorrect/Traitement/test2.db | Bin 61440 -> 61440 bytes BddCorrect/css/VueDemonstration.css | 8 +++ BddCorrect/css/VuePrincipale.css | 6 ++ BddCorrect/nbproject/private/private.xml | 5 +- BddCorrect/vues/VueAdmin.php | 3 - BddCorrect/vues/VueAjoutDemo.php | 4 -- BddCorrect/vues/VueDemonstration.php | 61 +++++++++++-------- BddCorrect/vues/VuePrincipale.php | 10 +-- BddCorrect/vues/VueQCM.php | 47 +++++++++----- BddCorrect/vues/vueAjoutQCM.php | 56 ++++++++--------- 15 files changed, 227 insertions(+), 113 deletions(-) diff --git a/BddCorrect/BDD/SqliteDb.php b/BddCorrect/BDD/SqliteDb.php index 94f21e7..66d9dc6 100644 --- a/BddCorrect/BDD/SqliteDb.php +++ b/BddCorrect/BDD/SqliteDb.php @@ -41,6 +41,8 @@ class SqliteDb extends SQLite3 $this->exec("INSERT INTO Type VALUES(2,4,'query')"); $this->exec("INSERT INTO Type VALUES(2,5,'functionCorrect')"); + + $this->createDateTp(); //Question 1 $type = 'query'; @@ -156,9 +158,10 @@ class SqliteDb extends SQLite3 $this->exec("INSERT INTO QcmReponse VALUES(1,'Ceci est la reponse 1 de la question 1(fausse)',1)"); $this->exec("INSERT INTO QcmReponse VALUES(2,'Ceci est la reponse 2 de la question 1(Vraie)',1)"); - $this->exec("INSERT INTO QcmReponse VALUES(3,'Ceci est la reponse 3 de la question 1(fausse)',1)"); + $this->exec("INSERT INTO QcmReponse VALUES(3,'Ceci est la reponse 3 de la question 1(Vraie)',1)"); $this->exec("INSERT INTO QcmCorrection VALUES(1,2)"); + $this->exec("INSERT INTO QcmCorrection VALUES(1,3)"); //Question 2 $this->exec("INSERT INTO QcmQuestion VALUES(2,'Ceci est la question 2')"); @@ -256,8 +259,9 @@ class SqliteDb extends SQLite3 return true; } - function ajouterQCM($numQuestion,$consigne,$choix1,$choix2,$choix3,$numReponse){ - if($this->verificationExistenceQCM($numQuestion)) return false; + function ajouterQCM($numQuestion,$consigne,$choix1,$choix2,$choix3,$reponses){ + if($this->verificationExistenceQCM($numQuestion)) return false; + $qt = "INSERT INTO QcmQuestion VALUES(?,?)"; $prp=$this->prepare($qt); $prp->bindParam(1, $numQuestion); @@ -282,12 +286,13 @@ class SqliteDb extends SQLite3 $stmt->bindParam(2,$numQuestion); $stmt->execute(); - $qt = "INSERT INTO QcmCorrection VALUES(?,?)"; - $prp=$this->prepare($qt); - $prp->bindParam(1, $numQuestion); - $prp->bindParam(2, $numReponse); - $prp->execute(); - + foreach($reponses as $numReponse){ + $qt = "INSERT INTO QcmCorrection VALUES(?,?)"; + $prp=$this->prepare($qt); + $prp->bindParam(1, $numQuestion); + $prp->bindParam(2, $numReponse); + $prp->execute(); + } return true; } diff --git a/BddCorrect/Traitement/AjoutDemonstration.php b/BddCorrect/Traitement/AjoutDemonstration.php index 9da4554..c240e45 100644 --- a/BddCorrect/Traitement/AjoutDemonstration.php +++ b/BddCorrect/Traitement/AjoutDemonstration.php @@ -7,23 +7,26 @@ require_once('../controleur/Controleur.php'); $db = new SqliteDb('o'); -if (empty($_GET['chapitre']) || empty($_GET['bdd']) || empty($_GET['numDemo']) || empty($_GET['description']) || empty($_GET['reponse']) ) { +if (empty($_GET['chapitre']) || empty($_GET['bdd']) || empty($_GET['description']) || empty($_GET['reponse']) ) { echo 'ERREUR : Veuillez remplir tous les champs '; } else if(!is_numeric($_GET['chapitre'])) echo 'ERREUR : une valeur non numérique à été détectée dans le champ \'Chapitre n° :\' '; -else if(!is_numeric($_GET['numDemo'])) - echo 'ERREUR : une valeur non numérique à été détectée dans le champ \'Numéro de démonstration :\' '; - else { + $reponseQuery = $db->prepare('SELECT count(*) FROM demonstration WHERE chapitre=?'); + $reponseQuery->bindParam(1, $_GET['chapitre']); + $reponseResult = $reponseQuery->execute(); + $reponseRow = $reponseResult->fetchArray(); + $numDemo = $reponseRow['count(*)'] + 1; + if(isset($_GET['modif'])){ - $db->supprimerDemonstration($_GET['chapitre'], $_GET['numDemo']); + $db->supprimerDemonstration($_GET['chapitre'], $numDemo); } - $isAdd = $db->ajouterDemonstration($_GET['bdd'],$_GET['chapitre'],$_GET['numDemo'],$_GET['description'], $_GET['reponse']); + $isAdd = $db->ajouterDemonstration($_GET['bdd'],$_GET['chapitre'],$numDemo,$_GET['description'], $_GET['reponse']); if(!$isAdd){ echo 'ERREUR : la combinaison (numéro de chapitre, numéro de démonstration) existe déjà dans la bdd'; } diff --git a/BddCorrect/Traitement/AjoutQCM.php b/BddCorrect/Traitement/AjoutQCM.php index 6c6a428..f998e32 100644 --- a/BddCorrect/Traitement/AjoutQCM.php +++ b/BddCorrect/Traitement/AjoutQCM.php @@ -4,13 +4,28 @@ require_once('../BDD/SqliteDb.php'); require_once('../controleur/Controleur.php'); $db = new SqliteDb('o'); -if(isset($_GET['modif'])){ - $db->supprimerQCM ($_GET['numQuestion']); -} +$reponseQuery = $db->prepare('SELECT count(*) FROM QcmQuestion'); +$reponseResult = $reponseQuery->execute(); +$reponseRow = $reponseResult->fetchArray(); +$numQuestion = $reponseRow['count(*)'] + 1; +$reponses = array(); +if(isset($_GET['modif'])){ + $db->supprimerQCM ($numQuestion); +} -$isAdd = $db->ajouterQCM($_GET['numQuestion'],$_GET['consigne'],$_GET['choix1'],$_GET['choix2'],$_GET['choix3'], $_GET['reponse']); +//die($_GET['rep1'].'-'.$_GET['rep2'].'-'.$_GET['rep3']); +if($_GET['rep1'] == 'true'){ + $reponses[] = 1; +} +if($_GET['rep2'] == 'true'){ + $reponses[] =2; +} +if($_GET['rep3'] == 'true'){ + $reponses[] = 3; +} +$isAdd = $db->ajouterQCM($numQuestion,$_GET['consigne'],$_GET['choix1'],$_GET['choix2'],$_GET['choix3'],$reponses); if(!$isAdd){ echo 'ERREUR : le numéro de question existe déjà dans la bdd'; } diff --git a/BddCorrect/Traitement/AjoutQuestion.php b/BddCorrect/Traitement/AjoutQuestion.php index 8791878..ab13951 100644 --- a/BddCorrect/Traitement/AjoutQuestion.php +++ b/BddCorrect/Traitement/AjoutQuestion.php @@ -6,27 +6,31 @@ require_once('../controleur/Controleur.php'); $db = new SqliteDb('o'); -if (empty($_GET['tp']) || empty($_GET['bdd']) || empty($_GET['num']) || empty($_GET['consigne']) || empty($_GET['reponse']) || empty($_GET['points']) || empty($_GET['aleatoire']) || empty($_GET['type'])) { +if (empty($_GET['tp']) || empty($_GET['bdd']) || empty($_GET['consigne']) || empty($_GET['reponse']) || empty($_GET['points']) || empty($_GET['aleatoire']) || empty($_GET['type'])) { echo 'ERREUR : Veuillez remplir tous les champs '; -} - +} else if(!is_numeric($_GET['tp'])) - echo 'ERREUR : une valeur non numérique à été détectée dans le champ \'Numéro de question :\' '; -else if(!is_numeric($_GET['num'])) echo 'ERREUR : une valeur non numérique à été détectée dans le champ \'TP n° :\' '; else if(!is_numeric($_GET['points'])) echo 'ERREUR : une valeur non numérique à été détectée dans le champ \'Barème:\' '; else { + + $reponseQuery = $db->prepare('SELECT count(*) FROM type WHERE numTp=?'); + $reponseQuery->bindParam(1, $_GET['tp']); + $reponseResult = $reponseQuery->execute(); + $reponseRow = $reponseResult->fetchArray(); + $numQuestion = $reponseRow['count(*)'] + 1; + if(isset($_GET['modif'])){ if ($_GET["type"] == 'fonction') - $db->supprimerFonction ($_GET['num'], $_GET['tp']); + $db->supprimerFonction ($numQuestion, $_GET['tp']); else if ($_GET["type"] == 'requete') - $db->supprimerRequete($_GET['num'], $_GET['tp']); + $db->supprimerRequete($numQuestion, $_GET['tp']); } - + if ($_GET["type"] == 'requete'){ - $isAdd = $db->ajouterRequete($_GET['bdd'],$_GET['tp'],$_GET['num'],$_GET['consigne'], $_GET['reponse'],$_GET['points']); + $isAdd = $db->ajouterRequete($_GET['bdd'],$_GET['tp'],$numQuestion,$_GET['consigne'], $_GET['reponse'],$_GET['points']); if(!$isAdd){ echo 'ERREUR : la combinaison (numéro de tp, numéro de question) existe déjà dans la bdd'; } @@ -55,7 +59,8 @@ else { $freponse = $reponse; $ffonction = $fonction; } - $isAdd = $db->ajouterFonction($_GET['bdd'],$_GET['tp'],$_GET['num'],$_GET['consigne'], $freponse,$ffonction,$reponse,$_GET['points']); + + $isAdd = $db->ajouterFonction($_GET['bdd'],$_GET['tp'],$numQuestion,$_GET['consigne'], $freponse,$ffonction,$reponse,$_GET['points']); if(!$isAdd){ echo 'ERREUR : la combinaison (numéro de tp, numéro de question) existe déjà dans la bdd'; } diff --git a/BddCorrect/Traitement/CorrectionQCM.php b/BddCorrect/Traitement/CorrectionQCM.php index 22417e7..32504b8 100644 --- a/BddCorrect/Traitement/CorrectionQCM.php +++ b/BddCorrect/Traitement/CorrectionQCM.php @@ -7,23 +7,71 @@ $db = new SqliteDb('o'); $oracleDb = new OracleDb(); $conn = $oracleDb->getConn(); +$numReponseRow = array(); + + +/*echo $_GET['rep1']; +echo $_GET['rep2']; +echo $_GET['rep3'];*/ $query = $db->prepare('SELECT numReponse FROM QcmCorrection WHERE numQuestion=?'); $query->bindParam(1, $_GET['numQuestion']); $result = $query->execute(); -$numReponseRow = $result->fetchArray(); -$reponseQuery = $db->prepare('SELECT reponse FROM QcmReponse WHERE numReponse=? AND numQuestion=?'); +while($r = $result->fetchArray() ){ + $numReponseRow[] = $r['numReponse']; +} + + +$err = 0; + +//reponse 1 +if(in_array(1, $numReponseRow) ) { + if($_GET['rep1']!='true'){ + $err++; + } +} +else if($_GET['rep1']=='true'){ + $err++; +} + +//reponse 2 +if(in_array(2, $numReponseRow) ) { + if($_GET['rep2']!='true'){ + $err++; + } +} +else if($_GET['rep2']=='true'){ + $err++; +} + +//reponse 2 +if(in_array(3, $numReponseRow) ) { + if($_GET['rep3']!='true'){ + $err++; + } +} +else if($_GET['rep3']=='true'){ + $err++; +} + +if($err == 0){ + echo 'Bonne réponse !'; +} +else echo 'Mauvaise réponse.'; +/*$reponseQuery = $db->prepare('SELECT reponse FROM QcmReponse WHERE numReponse=? AND numQuestion=?'); $reponseQuery->bindParam(1, $numReponseRow['numReponse']); $reponseQuery->bindParam(2, $_GET['numQuestion']); $reponseResult = $reponseQuery->execute(); $reponseRow = $reponseResult->fetchArray(); + + if($_GET['textbox'] == $reponseRow['reponse']){ echo 'Bonne réponse !'; } -else echo $reponseRow['reponse'].'Mauvaise Réponse.'; +else echo $reponseRow['reponse'].'Mauvaise Réponse.';*/ diff --git a/BddCorrect/Traitement/test2.db b/BddCorrect/Traitement/test2.db index 09a3dc61713ff5e42ecff4674c94367ecaa13ad7..1b392896796b4e7ff47b36d860468357d531de8b 100644 GIT binary patch delta 874 zcmZ{hPe@cj9LL}9&Ai>6_jc#E+iI4VeJN?C?yfHnc?eRm!g9AVD=H$hwcS`-|Lsyi z3#{9_3Gs@A@1LV!-x!O=eHB za)1^wug4%P2K8McW!!=t;)gK~RbtG29D-umeGfwR9ZxBMC7$y$a7+|o5{`-?OzQ+^ z6#Rg5IAi<5(|E#32>3}y$Js)aK#f`-YfG51o?bKAYIdb%kVsuLt<6AK%|A<3xsDm1 zQg9x}@EnHuDu2PBaGOubeuuf~WE2ocJ8`;lftn!>CuIm3QthCS0MQjHL2FxkYr3Z= zR;E^K5{k-DsrN6lC}rnCya;aP*0!VFtqG~K2!->aGgQuUsio$!yP-1Idf5Uo6SPLc zlxw)C;3|H@CH#bo((-EzXc_?^Dy0M%q0&E7sY)2gE9I_E?*?za@m6sfvkLa}sOPjh z&-i7`8lR=32ZmTW$#-{lM(S#%^E{>kfL|u$Bc(J_=X1LJjQwG2q&8o3`2l>sHJR#2 zq!KCJ_MQ4p=!)W5k#~Oa@S9F>OHqGS7H*`ji`9;Y8*3^XYa^9aJ4-9f()wUy&}>R1 zV?FlEi+S+B+P9R~o9Dt2Mf&}S@9`Br#``#qBl3|e7|>mmL4hjA+I^YHA+UnA(2#SG z*dZPb9rW>Y3gLAMX88cGiV&K&96D+$6!F}FZA}dUy5JqZI6qA@#~Ij46@~i#PE1T zoR}!_T)PTRsmxY3OR4ZqG!`~STN+vpH#Zz;s6S$EH}@QlHks>8EKigGwKq+^31}Tq L-FC=ceum-Su>RhE delta 698 zcmaJ;O-NKx6u#%(=ZtsWym#i!Pvg(Rhk=u*^O{K_7eZ>Zkg(cCL^b3jgTuVhX%^DL zQG-DcG%rFyID$osAgUKFi zYY0Z3GsciYqflvoz2BZ}CN$n@=>++FD_}Ue8s!836{wRt{-;pyKGb6XQTg7u38rkuECl2%7Ha`F8E)ch z>b8vO?k=S-O_~=Hbl=KY>B1c=o3aK+3WHXH@Xjv2aWpYfq>4zRk8s%dRb3?2YpA%uPRl>>q=&3SVQAit$bLJjB)#&po%9mzNd~wCJ1ocTkbXN= zEELkM3gM53iy8Sdi` z*UW!MGYm?#g)aDpO7jDMbru34LOj|w!%5?!e%&ATgSJg0uW83kPi;s5q6iK2_9%`+ zr&&XgK!hrk&ugxEZI7#4Oy45PHy!T - file:/C:/xampp/htdocs/BddCorrect/vues/VueAjoutDemo.php + file:/C:/xampp/htdocs/BddCorrect/vues/VueQCM.php file:/C:/xampp/htdocs/BddCorrect/BDD/SqliteDb.php - file:/C:/xampp/htdocs/BddCorrect/questions.txt + file:/C:/xampp/htdocs/BddCorrect/Traitement/AjoutQCM.php + file:/C:/xampp/htdocs/BddCorrect/vues/vueAjoutQCM.php diff --git a/BddCorrect/vues/VueAdmin.php b/BddCorrect/vues/VueAdmin.php index b1c5a1d..019efdb 100644 --- a/BddCorrect/vues/VueAdmin.php +++ b/BddCorrect/vues/VueAdmin.php @@ -18,9 +18,6 @@ - - - diff --git a/BddCorrect/vues/VueAjoutDemo.php b/BddCorrect/vues/VueAjoutDemo.php index 444c983..4472768 100644 --- a/BddCorrect/vues/VueAjoutDemo.php +++ b/BddCorrect/vues/VueAjoutDemo.php @@ -19,10 +19,6 @@ - - - - diff --git a/BddCorrect/vues/VueDemonstration.php b/BddCorrect/vues/VueDemonstration.php index 50dfc04..7d7d121 100644 --- a/BddCorrect/vues/VueDemonstration.php +++ b/BddCorrect/vues/VueDemonstration.php @@ -53,11 +53,14 @@ -

- - - -

+

+ + + + + + +

@@ -109,31 +112,33 @@ }); } } - function DescendreDemonstration(nbQuestions,numQuestion, numTp) { + function DescendreDemonstration(nbQuestions,numQuestion, numTp) { //alert(nbQuestions); - var des = 1; - if(numQuestion < nbQuestions){ - $.get("Traitement/OrdreDemo.php", { des : des , numDemo : numQuestion, numChapitre : numTp }, - function(data) { + var des = 1; + if(numQuestion < nbQuestions){ + $.get("Traitement/OrdreDemo.php", { des : des , numDemo : numQuestion, numChapitre : numTp }, + function(data) { - //$('#questionsForm')[0].reset(); - $("#afficher-demo").trigger("click"); - //window.location.replace("index.php"); - }); + //$('#questionsForm')[0].reset(); + $("#afficher-demo").trigger("click"); + //window.location.replace("index.php"); + }); + } } - } function SupprimerDemonstration(numDemo,numChapitre) { - var type = "demo"; - $.get("Traitement/Suppression.php", { numChapitre : numChapitre, numDemo : numDemo,demo : type}, - function(data) { - //$('#results'+numDemo+numChapitre).html(data); - //$('#questionsForm')[0].reset(); - $("#afficher-demo").trigger("click"); - }); - - } + var result = confirm("Êtes-vous sûr de vouloir supprimer la démonstration "+numDemo+" du chapitre "+numChapitre+" ?"); + if(result){ + var type = "demo"; + $.get("Traitement/Suppression.php", { numChapitre : numChapitre, numDemo : numDemo,demo : type}, + function(data) { + //$('#results'+numDemo+numChapitre).html(data); + //$('#questionsForm')[0].reset(); + $("#afficher-demo").trigger("click"); + }); + } + } function changerSection(tp,keys){ @@ -156,6 +161,14 @@ }); } + + window.addEventListener('scroll',function() { + localStorage.setItem('scrollPosition',window.scrollY); + },false); + window.addEventListener('load',function() { + if(localStorage.getItem('scrollPosition') !== null) + window.scrollTo(0, localStorage.getItem('scrollPosition')); + },false); diff --git a/BddCorrect/vues/VuePrincipale.php b/BddCorrect/vues/VuePrincipale.php index a69278c..ea472a6 100644 --- a/BddCorrect/vues/VuePrincipale.php +++ b/BddCorrect/vues/VuePrincipale.php @@ -76,10 +76,10 @@

- - - -

+ + + +

@@ -161,6 +161,8 @@ } function SupprimerQuestion(numQuestion,numTp) { + var result = confirm("Êtes-vous sûr de vouloir supprimer la question "+numQuestion+" du TP "+numTp+" ?"); + if(!result) return; $.get("Traitement/Suppression.php", { numQuestion : numQuestion, numTp : numTp}, function(data) { //$('#resultatsQuestions'+numQuestion).html(data); diff --git a/BddCorrect/vues/VueQCM.php b/BddCorrect/vues/VueQCM.php index c86231c..de2636c 100644 --- a/BddCorrect/vues/VueQCM.php +++ b/BddCorrect/vues/VueQCM.php @@ -40,7 +40,7 @@ getReponse() as $r ) { ?> - getNumReponse().'.'.$r->getReponse(); ?>
+ getNumReponse().'.'.$r->getReponse(); ?>

- - - -

+ + + + + +


@@ -74,9 +76,12 @@ function SubmitQCMData(numQuestion) { //document.write($('#textbox'+numQuestion).val()); var name = "radiobox"+numQuestion; - var txt = $("input[name="+name+"]:checked").val(); - - $.get("Traitement/CorrectionQCM.php", { textbox: txt , numQuestion: numQuestion}, + //var txt = $("input[name="+name+"]:checked").val(); + + var rep1 = $('#textbox'+numQuestion+1).is(':checked'); + var rep2 = $('#textbox'+numQuestion+2).is(':checked'); + var rep3 = $('#textbox'+numQuestion+3).is(':checked'); + $.get("Traitement/CorrectionQCM.php", { numQuestion: numQuestion, rep1 : rep1, rep2 : rep2, rep3 : rep3}, function(data) { $('#results'+numQuestion).html(data); //$('#QCMForm')[0].reset(); @@ -112,14 +117,16 @@ function SupprimerQCM(numQuestion) { - var type = "qcm"; - $.get("Traitement/Suppression.php", { numQuestion : numQuestion ,qcm : type}, - function(data) { - //$('#results'+numDemo+numChapitre).html(data); - //$('#questionsForm')[0].reset(); - $("#inp-questions").trigger("click"); - }); - + var result = confirm("Êtes-vous sûr de vouloir supprimer la question "+numQuestion+" ?"); + if(result){ + var type = "qcm"; + $.get("Traitement/Suppression.php", { numQuestion : numQuestion ,qcm : type}, + function(data) { + //$('#results'+numDemo+numChapitre).html(data); + //$('#questionsForm')[0].reset(); + $("#inp-questions").trigger("click"); + }); + } } function ModifierQCM(numQuestion) { $.get("Traitement/ModificationQCM.php", { numQuestion : numQuestion }, @@ -131,6 +138,14 @@ }); } + + window.addEventListener('scroll',function() { + localStorage.setItem('scrollPosition',window.scrollY); + },false); + window.addEventListener('load',function() { + if(localStorage.getItem('scrollPosition') !== null) + window.scrollTo(0, localStorage.getItem('scrollPosition')); + },false); diff --git a/BddCorrect/vues/vueAjoutQCM.php b/BddCorrect/vues/vueAjoutQCM.php index 5aa6aeb..37776ac 100644 --- a/BddCorrect/vues/vueAjoutQCM.php +++ b/BddCorrect/vues/vueAjoutQCM.php @@ -16,10 +16,6 @@

Ajouter une question(QCM)


- - - - @@ -32,10 +28,10 @@ -