export+qcm...

master
Mehdi 5 years ago
parent 5aab69905f
commit 70d60c77d6

@ -144,33 +144,58 @@ class SqliteDb extends SQLite3
}
function createQCM(){
$this->exec('DROP TABLE Qcm');
$this->exec('CREATE TABLE Qcm ( numQcm NUMBER, nom STRING,type STRING)');
$this->exec('DROP TABLE QcmQuestion');
$this->exec('CREATE TABLE QcmQuestion ( numQuestion NUMBER, question STRING)');
$this->exec('CREATE TABLE QcmQuestion ( numQuestion NUMBER,numQcm NUMBER, question STRING,bareme NUMBER)');
$this->exec('DROP TABLE QcmReponse');
$this->exec('CREATE TABLE QcmReponse ( numReponse NUMBER, reponse STRING, numQuestion NUMBER)');
$this->exec('CREATE TABLE QcmReponse ( numQcm NUMBER, numReponse NUMBER, reponse STRING, numQuestion NUMBER, points NUMBER)');
$this->exec('DROP TABLE QcmCorrection');
$this->exec('CREATE TABLE QcmCorrection ( numQuestion NUMBER, numReponse NUMBER)');
$this->exec('CREATE TABLE QcmCorrection (numQcm NUMBER, numQuestion NUMBER, numReponse NUMBER)');
//------QCM sql --------------//
$this->exec("INSERT INTO Qcm VALUES(1,'sql','vraifaux')");
//Question 1
$this->exec("INSERT INTO QcmQuestion VALUES(1,'Ceci est la question 1')");
$this->exec("INSERT INTO QcmQuestion VALUES(1,1,'Ceci est la question 1',10)");
$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(Vraie)',1)");
$this->exec("INSERT INTO QcmReponse(numQcm,numReponse,reponse,numQuestion) VALUES(1,1,'Ceci est la reponse 1 de la question 1(fausse)',1)");
$this->exec("INSERT INTO QcmReponse(numQcm,numReponse,reponse,numQuestion) VALUES(1,2,'Ceci est la reponse 2 de la question 1(Vraie)',1)");
$this->exec("INSERT INTO QcmReponse(numQcm,numReponse,reponse,numQuestion) VALUES(1,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)");
$this->exec("INSERT INTO QcmCorrection VALUES(1,1,2)");
$this->exec("INSERT INTO QcmCorrection VALUES(1,1,3)");
//Question 2
$this->exec("INSERT INTO QcmQuestion VALUES(2,'Ceci est la question 2')");
$this->exec("INSERT INTO QcmQuestion VALUES(2,1,'Ceci est la question 2',9)");
$this->exec("INSERT INTO QcmReponse(numQcm,numReponse,reponse,numQuestion) VALUES(1,1,'Ceci est la reponse 1 de la question 2(Vraie)',2)");
$this->exec("INSERT INTO QcmReponse(numQcm,numReponse,reponse,numQuestion) VALUES(1,2,'Ceci est la reponse 2 de la question 2(fausse)',2)");
$this->exec("INSERT INTO QcmReponse(numQcm,numReponse,reponse,numQuestion) VALUES(1,3,'Ceci est la reponse 3 de la question 2(fausse)',2)");
$this->exec("INSERT INTO QcmReponse(numQcm,numReponse,reponse,numQuestion) VALUES(1,4,'Ceci est la reponse 4 de la question 2(fausse)',2)");
$this->exec("INSERT INTO QcmCorrection VALUES(1,2,1)");
$this->exec("INSERT INTO QcmReponse VALUES(1,'Ceci est la reponse 1 de la question 2(Vraie)',2)");
$this->exec("INSERT INTO QcmReponse VALUES(2,'Ceci est la reponse 2 de la question 2(fausse)',2)");
$this->exec("INSERT INTO QcmReponse VALUES(3,'Ceci est la reponse 3 de la question 2(fausse)',2)");
//------QCM EPSWORTH --------------//
$this->exec("INSERT INTO Qcm VALUES(2,'EPSWORTH','test')");
//Question 1
$this->exec("INSERT INTO QcmQuestion(numQuestion,numQcm,question) VALUES(1,2,'Ceci est la question 1')");
$this->exec("INSERT INTO QcmReponse VALUES(2,1,'Ceci est la reponse 1 de la question 1(5)',1,5)");
$this->exec("INSERT INTO QcmReponse VALUES(2,2,'Ceci est la reponse 2 de la question 1(11)',1,11)");
$this->exec("INSERT INTO QcmReponse VALUES(2,3,'Ceci est la reponse 3 de la question 1(12)',1,12)");
$this->exec("INSERT INTO QcmCorrection VALUES(2,1)");
//Question 2
$this->exec("INSERT INTO QcmQuestion(numQuestion,numQcm,question) VALUES(2,2,'Ceci est la question 2')");
$this->exec("INSERT INTO QcmReponse VALUES(2,1,'Ceci est la reponse 1 de la question 2(5)',2,5)");
$this->exec("INSERT INTO QcmReponse VALUES(2,2,'Ceci est la reponse 2 de la question 2(11)',2,11)");
$this->exec("INSERT INTO QcmReponse VALUES(2,3,'Ceci est la reponse 3 de la question 2(12)',2,12)");
}
@ -257,47 +282,69 @@ class SqliteDb extends SQLite3
return true;
}
function ajouterQCM($numQuestion,$consigne,$choix1,$choix2,$choix3,$reponses){
if($this->verificationExistenceQCM($numQuestion)) return false;
$qt = "INSERT INTO QcmQuestion VALUES(?,?)";
function ajouterQCM($numQcm,$numQuestion,$consigne,$choix,$reponses){
if($this->verificationExistenceQCM($numQcm,$numQuestion)) return false;
$qt = "INSERT INTO QcmQuestion VALUES(?,?,?,20)";
$prp=$this->prepare($qt);
$prp->bindParam(1, $numQuestion);
$prp->bindParam(2, $consigne);
$prp->bindParam(2, $numQcm);
$prp->bindParam(3, $consigne);
$prp->execute();
$q = "INSERT INTO QcmReponse VALUES (1,?,?)";
$stmt = $this->prepare($q);
$stmt->bindParam(1,$choix1);
$stmt->bindParam(2,$numQuestion);
$stmt->execute();
$q = "INSERT INTO QcmReponse VALUES (2,?,?)";
$stmt = $this->prepare($q);
$stmt->bindParam(1,$choix2);
$stmt->bindParam(2,$numQuestion);
$stmt->execute();
$q = "INSERT INTO QcmReponse VALUES (3,?,?)";
$stmt = $this->prepare($q);
$stmt->bindParam(1,$choix3);
$stmt->bindParam(2,$numQuestion);
$stmt->execute();
$i=1;
foreach($choix as $c){
$q = "INSERT INTO QcmReponse(numQcm,numReponse,reponse,numQuestion) VALUES (?,?,?,?)";
$stmt = $this->prepare($q);
$stmt->bindParam(1,$numQcm);
$stmt->bindParam(2,$i);
$stmt->bindParam(3,$c);
$stmt->bindParam(4,$numQuestion);
$stmt->execute();
$i++;
}
foreach($reponses as $numReponse){
$qt = "INSERT INTO QcmCorrection VALUES(?,?)";
$qt = "INSERT INTO QcmCorrection VALUES(?,?,?)";
$prp=$this->prepare($qt);
$prp->bindParam(1, $numQuestion);
$prp->bindParam(2, $numReponse);
$prp->bindParam(1,$numQcm);
$prp->bindParam(2, $numQuestion);
$prp->bindParam(3, $numReponse);
$prp->execute();
}
return true;
}
function verificationExistenceQCM($numQuestion){
$q = "SELECT count(*) FROM QcmQuestion WHERE numQuestion = ? ";
function ajouterQCMTest($numQcm,$numQuestion,$consigne,$choixEtPoints){
if($this->verificationExistenceQCM($numQcm,$numQuestion)) return false;
$qt = "INSERT INTO QcmQuestion(numQuestion,numQcm,question) VALUES(?,?,?)";
$prp=$this->prepare($qt);
$prp->bindParam(1, $numQuestion);
$prp->bindParam(2, $numQcm);
$prp->bindParam(3, $consigne);
$prp->execute();
$i=1;
foreach($choixEtPoints as $c ){
$res = explode("---",$c);
$q = "INSERT INTO QcmReponse VALUES (?,?,?,?,?)";
$stmt = $this->prepare($q);
$stmt->bindParam(1,$numQcm);
$stmt->bindParam(2,$i);
$stmt->bindParam(3,$res[0]);
$stmt->bindParam(4,$numQuestion);
$stmt->bindParam(5,$res[1]);
$stmt->execute();
$i++;
}
return true;
}
function verificationExistenceQCM($numQcm,$numQuestion){
$q = "SELECT count(*) FROM QcmQuestion WHERE numQuestion = ? AND numQcm=?";
$prp=$this->prepare($q);
$prp->bindParam(1, $numQuestion);
$prp->bindParam(2, $numQcm);
$result = $prp->execute();
$row = $result->fetchArray();
if($row['count(*)'] == 0) return false;
@ -395,7 +442,7 @@ class SqliteDb extends SQLite3
$prp->execute();
}
function supprimerQCM($numQuestion){
function supprimerQCM($numQuestion,$type){
$qt = "DELETE FROM QcmQuestion WHERE numQuestion=? ";
$prp=$this->prepare($qt);
$prp->bindParam(1, $numQuestion);
@ -406,6 +453,7 @@ class SqliteDb extends SQLite3
$prp->bindParam(1, $numQuestion);
$prp->execute();
if($type == 'test') return;
$qt = "DELETE FROM QcmCorrection WHERE numQuestion=? ";
$prp=$this->prepare($qt);
$prp->bindParam(1, $numQuestion);

@ -1,4 +1,5 @@
<?php
<?php //header('Content-type: text/plain');
//require_once ('Question.php');
class QCMGateway {
private $db;
@ -9,31 +10,37 @@ class QCMGateway {
}
public function afficherQCM() {
$i = 0;
$query = 'SELECT * FROM QcmQuestion ORDER BY numQuestion';
$query = 'SELECT * FROM Qcm ORDER BY numQcm';
$query = $this->db->prepare($query);
$result = $query->execute();
$tabQuestions = array();
//$resultats = $this->db->query('SELECT found_rows()');
while($q = $result->fetchArray()){
$i= $i+1;
$reponseQuery = 'SELECT * FROM QcmReponse WHERE numQuestion=? ORDER BY numReponse';
$stmt = $this->db->prepare($reponseQuery);
$stmt->bindParam(1, $q['numQuestion']);
$reponseResult = $stmt->execute();
$i=0;
$tabReponses =array();
while ($r = $reponseResult->fetchArray()){
$i++;
$tabReponses[] = new ReponseQCM($r['numReponse'], $r['reponse'], $r['numQuestion']) ;
$resultqcm = $query->execute();
while($qcm = $resultqcm->fetchArray()){
$query = 'SELECT * FROM QcmQuestion WHERE numQcm = ? ORDER BY numQuestion ';
$query = $this->db->prepare($query);
$query->bindParam(1, $qcm['numQcm']);
$result = $query->execute();
$tabQuestions = array();
//$resultats = $this->db->query('SELECT found_rows()');
while($q = $result->fetchArray()){
$reponseQuery = 'SELECT * FROM QcmReponse WHERE numQuestion=? AND numQcm = ? ORDER BY numReponse';
$stmt = $this->db->prepare($reponseQuery);
$stmt->bindParam(1, $q['numQuestion']);
$stmt->bindParam(2, $qcm['numQcm']);
$reponseResult = $stmt->execute();
$tabReponses =array();
while ($r = $reponseResult->fetchArray()){
$tabReponses[] = new ReponseQCM($r['numReponse'], $r['reponse'], $r['numQuestion']) ;
}
$tabQuestions[] = new QuestionQCM($q['numQuestion'],$q['question'],$tabReponses,$q['bareme']);
}
//die(print_r($i, true ));
$tabQuestions[] = new QCM($q['numQuestion'],$q['question'],$tabReponses);
$tabQcm[] = new QCM($qcm['numQcm'], $qcm['nom'], $qcm['type'], $tabQuestions) ;
}
//die(print_r($tabQuestions, true ));
return $tabQuestions;
//die(print_r($tabQcm, true ));
//+die(print_r($tabQuestions, true ));
return $tabQcm;
//die('ook');
}
}

@ -30,7 +30,27 @@ else {
if(!$isAdd){
echo '<strong>ERREUR : la combinaison (numéro de chapitre, numéro de démonstration) existe déjà dans la bdd</strong>';
}
else echo '<strong>AJOUT Démonstration avec succès</strong>';
else{
$trouve=0;
$file = fopen('..\imports\demonstration\demo_historiqueAuto.txt', "a");
$ligne = $_GET['bdd'].'**'.$_GET['chapitre'].'**'.$_GET['description'].'**'.$_GET['reponse'];
$handle = @fopen('..\imports\demonstration\demo_historiqueAuto.txt', "r");
if ($handle)
{
while (!feof($handle))
{
$buffer = fgets($handle);
if(strpos($buffer, $ligne) !== FALSE)
$trouve = 1;
}
fclose($handle);
}
if($trouve==0) fwrite($file, $ligne."\n");
$trouve = 0;
fclose($file);
echo '<strong>AJOUT Démonstration n°'.$numDemo.' au chapitre '.$_GET['chapitre'].' avec succès</strong>';
}

@ -4,30 +4,48 @@ require_once('../BDD/SqliteDb.php');
require_once('../controleur/Controleur.php');
$db = new SqliteDb('o');
$query = $db->prepare('SELECT count(*) FROM Qcm WHERE numQcm= ?');
$query->bindParam(1, $_GET['numQcm']);
$result = $query->execute();
$countRow = $result->fetchArray();
$reponseQuery = $db->prepare('SELECT count(*) FROM QcmQuestion');
if($_GET['nomQcm'] == 'existe' && $countRow['count(*)'] == 0){
exit("Le numéro de qcm n'existe pas : veuillez remplir le champ 'Nom du Qcm' ou utiliser un numéro de qcm existant");
}
else if($countRow['count(*)'] == 0){
$query = $db->prepare('INSERT INTO Qcm VALUES(?,?,?)');
$query->bindParam(1, $_GET['numQcm']);
$query->bindParam(2, $_GET['nomQcm']);
$query->bindParam(3, $_GET['type']);
$result = $query->execute();
}
$reponseQuery = $db->prepare('SELECT count(*) FROM QcmQuestion WHERE numQcm= ?');
$reponseQuery->bindParam(1, $_GET['numQcm']);
$reponseResult = $reponseQuery->execute();
$reponseRow = $reponseResult->fetchArray();
$numQuestion = $reponseRow['count(*)'] + 1;
$reponses = array();
if(isset($_GET['modif'])){
$db->supprimerQCM ($numQuestion);
$db->supprimerQCM ($numQuestion,$_GET['type']);
}
//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;
if($_GET['type']=='test'){
$isAdd = $db->ajouterQCMTest($_GET['numQcm'],$numQuestion,$_GET['consigne'],$_GET['choix']);
if(!$isAdd){
echo '<strong>ERREUR : le numéro de question '.$numQuestion.' existe déjà dans le qcm '.$_GET['numQcm'].'</strong>';
}
else echo '<strong>AJOUT QCM avec succès</strong>';
}
$isAdd = $db->ajouterQCM($numQuestion,$_GET['consigne'],$_GET['choix1'],$_GET['choix2'],$_GET['choix3'],$reponses);
else{
$isAdd = $db->ajouterQCM($_GET['numQcm'],$numQuestion,$_GET['consigne'],$_GET['choix'],$_GET['reponse']);
if(!$isAdd){
echo '<strong>ERREUR : le numéro de question existe déjà dans la bdd</strong>';
}
else echo '<strong>AJOUT QCM avec succès</strong>';
else echo '<strong>AJOUT QCM avec succès</strong>';
}

@ -7,7 +7,7 @@ require_once('../controleur/Controleur.php');
$db = new SqliteDb('o');
if (empty($_GET['tp']) || empty($_GET['bdd']) || empty($_GET['consigne']) || empty($_GET['reponse']) || empty($_GET['points']) || empty($_GET['aleatoire']) || empty($_GET['type'])) {
echo '<strong>ERREUR : Veuillez remplir tous les champs </strong>';
echo '<strong>ERREUR1 : Veuillez remplir tous les champs </strong>';
}
else if(!is_numeric($_GET['tp']))
echo '<strong>ERREUR : une valeur non numérique à été détectée dans le champ \'TP n° :\' </strong>';
@ -34,14 +34,33 @@ else {
if(!$isAdd){
echo '<strong>ERREUR : la combinaison (numéro de tp, numéro de question) existe déjà dans la bdd</strong>';
}
else echo '<strong>AJOUT Requete avec succès</strong>';
else{
$trouve=0;
$file = fopen('..\imports\tp\tp_historiqueAuto.txt', "a");
$ligne = 'requete**'.$_GET['bdd'].'**'.$_GET['tp'].'**'.$_GET['consigne'].'**'.$_GET['reponse'].'**'.$_GET['points'].'**'.'n';
$handle = @fopen('..\imports\tp\tp_historiqueAuto.txt', "r");
if ($handle)
{
while (!feof($handle))
{
$buffer = fgets($handle);
if(strpos($buffer, $ligne) !== FALSE)
$trouve = 1;
}
fclose($handle);
}
if($trouve==0) fwrite($file, $ligne."\n");
$trouve = 0;
fclose($file);
echo '<strong>AJOUT Requete avec succès</strong>';
}
}
else if ($_GET["type"] == 'fonction'){
if(empty($_GET['fonction']))
echo 'ERREUR : Veuillez remplir tous les champs ';
else {
if(isset($_GET['modif'])){
if(!isset($_GET['modif'])){
$reponse = $_GET['reponse'];
$re = '/^\s*SELECT\s*([a-z0-9]*)/i';
preg_match($re, $reponse, $matches, PREG_OFFSET_CAPTURE);
@ -53,18 +72,37 @@ else {
preg_match($re, $fonction, $matches2, PREG_OFFSET_CAPTURE);
$string2 = 'f'.$matches2[1][0];
$ffonction = str_replace($matches2[1][0],$string2, $fonction);
$ffonction = str_replace($matches2[1][0],$string2, $fonction);
}
else {
$freponse = $reponse;
$ffonction = $fonction;
$freponse = $_GET['reponse'];
$ffonction = $_GET['fonction'];
}
$isAdd = $db->ajouterFonction($_GET['bdd'],$_GET['tp'],$numQuestion,$_GET['consigne'], $freponse,$ffonction,$reponse,$_GET['points']);
if(!$isAdd){
echo '<strong>ERREUR : la combinaison (numéro de tp, numéro de question) existe déjà dans la bdd</strong>';
}
else echo '<strong>AJOUT Fonction avec succès</strong>';
else{
$trouve=0;
$file = fopen('..\imports\tp\tp_historiqueAuto.txt', "a");
$ligne = 'fonction**'.$_GET['bdd'].'**'.$_GET['tp'].'**'.$_GET['consigne'].'**'.$freponse.'**'.$_GET['points'].'**'.'n**'.$ffonction;
$handle = @fopen('..\imports\tp\tp_historiqueAuto.txt', "r");
if ($handle)
{
while (!feof($handle))
{
$buffer = fgets($handle);
if(strpos($buffer, $ligne) !== FALSE)
$trouve = 1;
}
fclose($handle);
}
if($trouve==0) fwrite($file, $ligne."\n");
$trouve = 0;
fclose($file);
echo '<strong>AJOUT Fonction avec succès</strong>';
}
}
}

@ -10,68 +10,63 @@ $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();
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++;
if(!isset($_GET['type'])){
$query = $db->prepare('SELECT numReponse FROM QcmCorrection WHERE numQuestion=? AND numQcm= ?');
$query->bindParam(1, $_GET['numQuestion']);
$query->bindParam(2, $_GET['numQcm']);
$result = $query->execute();
while($r = $result->fetchArray() ){
$numReponseRow[] = $r['numReponse'];
}
}
else if($_GET['rep2']=='true'){
$err++;
}
//reponse 2
if(in_array(3, $numReponseRow) ) {
if($_GET['rep3']!='true'){
$err++;
}
}
else if($_GET['rep3']=='true'){
$err++;
}
// Sort the array elements
sort($numReponseRow);
sort( $_GET['rep']);
if($err == 0){
echo 'Bonne réponse !';
// Check for equality
if ($numReponseRow == $_GET['rep'])
echo "<b>Bonne réponse ! </b>\n";
else
echo "<b>Mauvaise réponse.</b>\n";
}
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{
$query = $db->prepare('SELECT count(*) FROM QcmQuestion WHERE numQcm= ? ');
$query->bindParam(1, $_GET['numQcm']);
$result = $query->execute();
$nbQuestionRow = $result->fetchArray();
$total = 0;
for($i = 1 ; $i<=$nbQuestionRow['count(*)'] ; $i++ ){
$query = $db->prepare('SELECT max(points) FROM QcmReponse WHERE numQcm= ? AND numQuestion=?');
$query->bindParam(1, $_GET['numQcm']);
$query->bindParam(2, $i);
$result = $query->execute();
$totalRow = $result->fetchArray();
$total += $totalRow['max(points)'];
}
$query = $db->prepare('SELECT * FROM QcmReponse WHERE numQcm= ? ');
$query->bindParam(1, $_GET['numQcm']);
$result = $query->execute();
$totalRow = $result->fetchArray();
$points = 0;
for ($i = 1 ; $i < sizeof($_GET['rep']) ; $i++){
$query = $db->prepare('SELECT * FROM QcmReponse WHERE numQuestion=? AND numQcm= ? AND numReponse= ?');
$query->bindParam(1, $i);
$query->bindParam(2, $_GET['numQcm']);
$query->bindParam(3, $_GET['rep'][$i][0]);
$result = $query->execute();
$pointRow = $result->fetchArray();
$points +=$pointRow['points'];
}
echo '<b>Résultat : '.$points.' sur '.$total.'</b>';
}
else echo $reponseRow['reponse'].'Mauvaise Réponse.';*/

@ -0,0 +1,161 @@
<?php
require_once('../BDD/SqliteDb.php');
$db = new SqliteDb('o');
if ($_GET['type']=='demo'){
$file = fopen('..\imports\demonstration\demo_exportes.txt', "a");
$matches = array();
$trouve = 0;
$reponseQuery = $db->prepare('SELECT * FROM demonstration');
$reponseResult = $reponseQuery->execute();
while ($r = $reponseResult->fetchArray()){
$ligne = $r['bddconcernee'].'**'.$r['chapitre'].'**'.$r['description'].'**'.$r['reponse'];
$handle = @fopen('..\imports\demonstration\demo_exportes.txt', "r");
if ($handle)
{
while (!feof($handle))
{
$buffer = fgets($handle);
if(strpos($buffer, $ligne) !== FALSE)
$trouve = 1;
}
fclose($handle);
}
if($trouve==0) fwrite($file, $ligne."\n");
$trouve = 0;
//fwrite($file, $ligne."\n");
}
fclose($file);
// file_put_contents('..\imports\demonstration\demo_exportes.txt', rtrim(file_get_contents('..\imports\demonstration\demo_exportes.txt')));
}
else if ($_GET['type']=='tp'){
$file = fopen('..\imports\tp\tpexportes.txt', "a");
$matches = array();
$trouve = 0;
$reponseQuery = $db->prepare('SELECT bddConcernee,numTp,numquestion,question,reponse,points FROM Correct UNION SELECT bddConcernee,numTp,numquestion,question,reponse,points FROM FunctionCorrect');
$reponseResult = $reponseQuery->execute();
while ($r = $reponseResult->fetchArray()){
$questionQuery = 'SELECT type FROM type WHERE numQuestion = ? AND numTp=? ';
$questionQuery = $db->prepare($questionQuery);
$questionQuery->bindParam(1, $r['numquestion']);
$questionQuery->bindParam(2, $r['numTp']);
$questionResult = $questionQuery->execute();
$typeRow = $questionResult->fetchArray();
$reponse = $r['reponse'];
if($typeRow['type'] == 'functionCorrect'){
$questionQuery = 'SELECT fonctionCorrect FROM functionCorrect WHERE numQuestion = ? AND numTp=? ';
$questionQuery = $db->prepare($questionQuery);
$questionQuery->bindParam(1, $r['numquestion']);
$questionQuery->bindParam(2, $r['numTp']);
$questionResult = $questionQuery->execute();
$fonctionRow = $questionResult->fetchArray();
$type='fonction';
$re = '/^\s*SELECT\s*([a-z0-9])/i';
preg_match($re, $reponse, $matches, PREG_OFFSET_CAPTURE);
$string = 'f'.$matches[1][0];
$freponse = str_replace($matches[1][0],'', $reponse);
$fonction = $fonctionRow['fonctionCorrect'];
$re = '/^\s*CREATE OR REPLACE FUNCTION\s*([a-z0-9])/i';
preg_match($re, $fonction, $matches2, PREG_OFFSET_CAPTURE);
$string2 = 'f'.$matches2[1][0];
$ffonction = str_replace($matches2[1][0],'', $fonction);
}
else{
$freponse = $reponse;
$type='requete';
}
$ligne = $type.'**'.$r['bddConcernee'].'**'.$r['numTp'].'**'.$r['question'].'**'.$freponse.'**'.$r['points'].'**n';
if($typeRow['type'] == 'functionCorrect'){
$ligne = $ligne.'**'.$ffonction;
}
$handle = @fopen('..\imports\tp\tp_exportes.txt', "r");
if ($handle)
{
while (!feof($handle))
{
$buffer = fgets($handle);
if(strpos($buffer, $ligne) !== FALSE)
$trouve = 1;
}
fclose($handle);
}
if($trouve==0) fwrite($file, $ligne."\n");
$trouve = 0;
//fwrite($file, $ligne."\n");
}
fclose($file);
// file_put_contents('..\imports\demonstration\demo_exportes.txt', rtrim(file_get_contents('..\imports\demonstration\demo_exportes.txt')));
}
else if($_GET['type']=='qcm'){
$file = fopen('..\imports\qcm\qcm_exportes.txt', "a");
$matches = array();
$trouve = 0;
$reponseQuery = $db->prepare('SELECT * FROM Qcm ORDER By numQcm');
$reponseResult = $reponseQuery->execute();
while ($qcm = $reponseResult->fetchArray()){
$ligne = $qcm['numQcm'].'**'.$qcm['nom'].'**'.$qcm['type'];
$reponseQuery = $db->prepare('SELECT * FROM QcmQuestion WHERE numQcm=? ORDER By question');
$reponseQuery->bindParam(1, $qcm['numQcm']);
$questionResult = $reponseQuery->execute();
while ($question = $questionResult->fetchArray()){
$ligne = $qcm['numQcm'].'**'.$qcm['nom'].'**'.$qcm['type'];
$ligne = $ligne.'**'.$question['question'];
$reponseQuery = $db->prepare('SELECT * FROM QcmReponse WHERE numQcm=? AND numQuestion=? ORDER BY numReponse');
$reponseQuery->bindParam(1, $qcm['numQcm']);
$reponseQuery->bindParam(2, $question['numQuestion']);
$reponsResult = $reponseQuery->execute();
if($qcm['type'] == 'test'){
$ligne = $ligne.'**';
while ($reponseTest = $reponsResult->fetchArray()){
$ligne = $ligne.$reponseTest['reponse'].'---'.$reponseTest['points'].'+++';
}
$ligne = substr($ligne, 0, -3);
}
else{
$ligne = $ligne.'**';
while ($reponseV = $reponsResult->fetchArray()){
$ligne = $ligne.$reponseV['reponse'].'+++';
}
$ligne = substr($ligne, 0, -3);
$ligne = $ligne.'**';
$reponseQuery = $db->prepare('SELECT * FROM QcmCorrection WHERE numQcm=? AND numQuestion=? ORDER BY numQcm,numQuestion');
$reponseQuery->bindParam(1, $qcm['numQcm']);
$reponseQuery->bindParam(2, $question['numQuestion']);
$reponsResult = $reponseQuery->execute();
while ($reponse = $reponsResult->fetchArray()){
$ligne = $ligne.$reponse['numReponse'].',,';
}
$ligne = substr($ligne, 0, -2);
}
$trouve = 0;
$handle = @fopen('..\imports\qcm\qcm_exportes.txt', "r");
if ($handle)
{
while (!feof($handle))
{
$buffer = fgets($handle);
if(strpos($buffer, $ligne) !== FALSE)
$trouve = 1;
}
fclose($handle);
}
if($trouve==0) fwrite($file, $ligne."\n");
}
}
fclose($file);
}

@ -7,20 +7,38 @@ require_once('../BDD/OracleDb.php');
$db = new SqliteDb('o');
$stmt = $db->prepare('SELECT * FROM QcmQuestion WHERE numQuestion= ?');
$stmt = $db->prepare('SELECT * FROM Qcm WHERE numQcm= ?');
$stmt->bindParam(1, $_GET['numQcm']);
$resultQuestion = $stmt->execute();
$qcmRow = $resultQuestion->fetchArray();
$stmt = $db->prepare('SELECT * FROM QcmQuestion WHERE numQuestion= ? AND numQcm=?');
$stmt->bindParam(1, $_GET['numQuestion']);
$stmt->bindParam(2, $_GET['numQcm']);
$resultQuestion = $stmt->execute();
$questionRow = $resultQuestion->fetchArray();
$stmt = $db->prepare('SELECT reponse FROM QcmReponse WHERE numQuestion= ?');
$stmt = $db->prepare('SELECT reponse FROM QcmReponse WHERE numQuestion= ? AND numQcm=?');
$stmt->bindParam(1, $_GET['numQuestion']);
$stmt->bindParam(2, $_GET['numQcm']);
$resultQuestion = $stmt->execute();
while($r = $resultQuestion->fetchArray(SQLITE3_NUM)){
$reponseRow[] = $r[0];
}
$stmt = $db->prepare('SELECT count(*) FROM QcmReponse WHERE numQuestion= ? AND numQcm=?');
$stmt->bindParam(1, $_GET['numQuestion']);
$stmt->bindParam(2, $_GET['numQcm']);
$resultQuestion = $stmt->execute();
$countRow = $resultQuestion->fetchArray();
while($r = $resultQuestion->fetchArray(SQLITE3_NUM)){
$reponseRow[] = $r[0];
}
$stmt = $db->prepare('SELECT * FROM QcmCorrection WHERE numQuestion= ?');
$stmt = $db->prepare('SELECT * FROM QcmCorrection WHERE numQuestion= ? AND numQcm=?');
$stmt->bindParam(1, $_GET['numQuestion']);
$stmt->bindParam(2, $_GET['numQcm']);
$resultQuestion = $stmt->execute();
$correctRow = $resultQuestion->fetchArray();
@ -32,26 +50,66 @@ $correctRow = $resultQuestion->fetchArray();
<h1>Ajouter une question(QCM)</h1>
<hr>
<label><b>Numéro de question : </b></label>
<input type="text" placeholder="Saisir le numéro de la démonstration..." id="numQuestion" value="<?php echo $_GET['numQuestion']; ?>" required disabled>
<label><b>Numéro du Qcm : </b></label>
<input type="text" placeholder="Ecrire le numéro du qcm..." id="numQcm" value="<?php echo $_GET['numQcm']; ?>" disabled>
<label><b>Numéro de la question : </b></label>
<input type="text" placeholder="Ecrire le nom du qcm..." id="numQuestion" value="<?php echo $_GET['numQuestion'];?>" disabled>
<label><b>Consigne : </b></label>
<input type="text" placeholder="Ecrire l'intitulé de la démonstration..." id="consigne" value="<?php echo $questionRow['question']; ?>" required >
<input type="text" placeholder="Ecrire l'intitulé de la question..." id="consigne" value="<?php echo $questionRow['question'];?>" required>
<label><b>Réponse 1 : </b></label>
<input type="text" id="choix1" value="<?php echo $reponseRow[0]; ?>" required>
<label><b>Réponse 2 : </b></label>
<input type="text" id="choix2" value="<?php echo $reponseRow[1]; ?>" required>
<b><label for="type">Type de Qcm ?</label></b><br/><br/><div></div>
<select name="type" id="type" class="type" disabled>
<option value="vraifaux" label="Vrai ou Faux" <?php if($qcmRow['type'] == 'vraifaux') echo 'selected'; ?>></option>
<option value="test" label="enquête" <?php if($qcmRow['type'] == 'test') echo 'selected'; ?>></option>
</select>
<br/><br/><div></div>
<label><b>Réponse 3 : </b></label>
<input type="text" id="choix3" value="<?php echo $reponseRow[2]; ?>" required>
<b><label for="nb_reponse">Nombre de choix de réponses ?</label></b><br/><br/><div></div>
<select name="nb_reponse" id="nbReponses" class="1to100">
<?php for($i=1;$i<100;$i++){
?><option value="<?php echo $i;?>" <?php if($countRow['count(*)'] == $i) echo 'selected'; ?>><?php echo $i;?></option>
<?php } ?>
</select>
<br/><br/><br/>
<label><b>Bonne Réponse ? </b><br/>
<input type="radio" name="reponse" value="1" style="margin-bottom:15px" <?php if($correctRow['numReponse']== 1) echo 'checked'; ?>> 1
<input type="radio" name="reponse" value="2" style="margin-bottom:15px" <?php if($correctRow['numReponse']== 2) echo 'checked'; ?>> 2
<input type="radio" name="reponse" value="3" style="margin-bottom:15px" <?php if($correctRow['numReponse']== 3) echo 'checked'; ?>> 3
<div id="ireponses">
<?php if($qcmRow['type'] !== 'test'){
for($i=1 ; $i<=$countRow['count(*)'] ;$i++){ ?>
<label><b>Réponse <?php echo $i;?> : </b></label>
<?php
$stmt = $db->prepare('SELECT reponse FROM QcmReponse WHERE numQcm=? AND numQuestion=? AND numReponse=?');
$stmt->bindParam(1, $_GET['numQcm']);
$stmt->bindParam(2, $_GET['numQuestion']);
$stmt->bindParam(3, $i);
$resultQuestion = $stmt->execute();
$repRow = $resultQuestion->fetchArray();
?>
<input type="text" id="choix<?php echo $i;?>" value="<?php echo $repRow['reponse'];?>" required>
<?php }
}
else{
for($i=1 ; $i<=$countRow['count(*)'] ;$i++){ ?>
<label><b>Réponse <?php echo $i;?> : </b></label>
<input type="text" id="choix<?php echo $i;?>" required>
<input type="text" id="points<?php echo $i;?>" name="bareme" placeholder="Ecrire le nombre de points pour cette réponse"><br/>
<?php }
} ?>
</div>
<label id="labelBrep"><b>Bonne(s) Réponse(s) ? </b><br/>
<div id="breponses">
<?php if($qcmRow['type'] !== 'test'){
for($i=1 ; $i<=$countRow['count(*)'] ;$i++){ ?>
<input type="checkbox" id="rep<?php echo $i;?>" name="reponse" value="<?php echo $i;?>" ><?php echo $i;?><br/>
<?php }
}?>
</div>
</label><br/>
<div >
@ -72,28 +130,42 @@ $correctRow = $resultQuestion->fetchArray();
<script>
function SubmitModifierQCM() {
//var chapitre = $('#chapitre').val() ;
var numQuestion = $('#numQuestion').val() ;
var consigne = $('#consigne').val() ;
var choix1= $('#choix1').val() ;
var choix2= $('#choix2').val() ;
var choix3= $('#choix3').val() ;
//var reponse = $('#reponse').val() ;
var reponse = $("input[name='reponse']:checked").val();
var modif = 1;
$.get("Traitement/AjoutQCM.php", {numQuestion: numQuestion,consigne: consigne,choix1: choix1,choix2: choix2,choix3: choix3,reponse: reponse, modif : modif},
function(data) {
$('#erreur').html(data);
if (data.includes("AJOUT") == true){
var result = confirm("La question a été ajoutée. Afficher les QCM ?");
if(result) $('#inp-qcm').trigger("click");
}
//$('#demoForm')[0].reset();
});
function SubmitModifierQCM(mot=0) {
var reponse = [];
var choix = [];
if(mot==0){
var numQcm = $('#numQcm').val();
var nomQcm = "existe";
var type = $('#type').val();
if($('#nom').val()){
nomQcm = $('#nom').val();
}
var nbRep = $('#nbReponses').val();
for( var i = 1 ; i<=nbRep ; i++){
if ( $('#rep'+i).is( ":checked" ))
reponse.push($('#rep'+i).val());
if(type !== 'test')
choix.push($('#choix'+i).val());
else{
choix.push($('#choix'+i).val()+'---'+$('#points'+i).val())
}
}
var consigne = $('#consigne').val() ;
}
$.get("Traitement/AjoutQCM.php", {type : type , numQcm : numQcm , nomQcm : nomQcm,consigne: consigne, reponse : reponse, choix : choix},
function(data) {
$('#erreur').html(data);
if (data.includes("AJOUT") == true){
/*var result = confirm("La question a été ajoutée. Afficher les QCM ?");
if(result) $('#inp-qcm').trigger("click"); */
}
//$('#demoForm')[0].reset();
});
}
}
</script>

@ -16,52 +16,61 @@ if(isset($_GET['des'])){
if($numQuestion!=1){
//QCM QUestion
$sqliteQuery = $db->prepare('UPDATE QcmQuestion SET numQuestion=? WHERE numQuestion=? ');
$sqliteQuery = $db->prepare('UPDATE QcmQuestion SET numQuestion=? WHERE numQuestion=? AND numQcm=?');
$sqliteQuery->bindParam(1, $test);
$sqliteQuery->bindParam(2, $numQuestion);
$sqliteQuery->bindParam(3, $_GET['numQcm']);
$result = $sqliteQuery->execute();
$sqliteQuery = $db->prepare('UPDATE QcmQuestion SET numQuestion=? WHERE numQuestion=?');
$sqliteQuery = $db->prepare('UPDATE QcmQuestion SET numQuestion=? WHERE numQuestion=? AND numQcm=?');
$sqliteQuery->bindParam(1, $numQuestion);
$sqliteQuery->bindParam(2, $numQuestionPrec);
$sqliteQuery->bindParam(3, $_GET['numQcm']);
$resulti = $sqliteQuery->execute();
$sqliteQuery = $db->prepare('UPDATE QcmQuestion SET numQuestion=? WHERE numQuestion=?');
$sqliteQuery = $db->prepare('UPDATE QcmQuestion SET numQuestion=? WHERE numQuestion=? AND numQcm=?');
$sqliteQuery->bindParam(1, $numQuestionPrec);
$sqliteQuery->bindParam(2, $test);
$sqliteQuery->bindParam(3, $_GET['numQcm']);
$resultp = $sqliteQuery->execute();
//même chose pour qcmreponse
$sqliteQuery = $db->prepare('UPDATE QcmReponse SET numQuestion=? WHERE numQuestion=? ');
$sqliteQuery = $db->prepare('UPDATE QcmReponse SET numQuestion=? WHERE numQuestion=? AND numQcm=?');
$sqliteQuery->bindParam(1, $test);
$sqliteQuery->bindParam(2, $numQuestion);
$sqliteQuery->bindParam(3, $_GET['numQcm']);
$result = $sqliteQuery->execute();
$sqliteQuery = $db->prepare('UPDATE QcmReponse SET numQuestion=? WHERE numQuestion=?');
$sqliteQuery = $db->prepare('UPDATE QcmReponse SET numQuestion=? WHERE numQuestion=? AND numQcm=?');
$sqliteQuery->bindParam(1, $numQuestion);
$sqliteQuery->bindParam(2, $numQuestionPrec);
$sqliteQuery->bindParam(3, $_GET['numQcm']);
$resulti = $sqliteQuery->execute();
$sqliteQuery = $db->prepare('UPDATE QcmReponse SET numQuestion=? WHERE numQuestion=?');
$sqliteQuery = $db->prepare('UPDATE QcmReponse SET numQuestion=? WHERE numQuestion=? AND numQcm=?');
$sqliteQuery->bindParam(1, $numQuestionPrec);
$sqliteQuery->bindParam(2, $test);
$sqliteQuery->bindParam(3, $_GET['numQcm']);
$resultp = $sqliteQuery->execute();
//même chose pour QCMcorrection
$sqliteQuery = $db->prepare('UPDATE QcmCorrection SET numQuestion=? WHERE numQuestion=? ');
$sqliteQuery = $db->prepare('UPDATE QcmCorrection SET numQuestion=? WHERE numQuestion=? AND numQcm=?');
$sqliteQuery->bindParam(1, $test);
$sqliteQuery->bindParam(2, $numQuestion);
$sqliteQuery->bindParam(3, $_GET['numQcm']);
$result = $sqliteQuery->execute();
$sqliteQuery = $db->prepare('UPDATE QcmCorrection SET numQuestion=? WHERE numQuestion=?');
$sqliteQuery = $db->prepare('UPDATE QcmCorrection SET numQuestion=? WHERE numQuestion=? AND numQcm=?');
$sqliteQuery->bindParam(1, $numQuestion);
$sqliteQuery->bindParam(2, $numQuestionPrec);
$sqliteQuery->bindParam(3, $_GET['numQcm']);
$resulti = $sqliteQuery->execute();
$sqliteQuery = $db->prepare('UPDATE QcmCorrection SET numQuestion=? WHERE numQuestion=?');
$sqliteQuery = $db->prepare('UPDATE QcmCorrection SET numQuestion=? WHERE numQuestion=? AND numQcm=?');
$sqliteQuery->bindParam(1, $numQuestionPrec);
$sqliteQuery->bindParam(2, $test);
$sqliteQuery->bindParam(3, $_GET['numQcm']);
$resultp = $sqliteQuery->execute();
}

@ -9,44 +9,51 @@ $db = new SqliteDb('o');
if (isset($_GET['qcm'])){
$numQcmSuiv = $_GET['numQuestion']+1;
$sqliteQuery = $db->prepare('SELECT count(*) FROM QcmQuestion ');
$sqliteQuery = $db->prepare('SELECT count(*) FROM QcmQuestion WHERE numQcm=?');
$sqliteQuery->bindParam(1, $_GET['numQcm']);
$result = $sqliteQuery->execute();
$nbQuestionsRow = $result->fetchArray();
$sqliteQuery = $db->prepare('DELETE FROM QcmQuestion WHERE numQuestion= ? ');
$sqliteQuery = $db->prepare('DELETE FROM QcmQuestion WHERE numQuestion= ? AND numQcm=?');
$sqliteQuery->bindParam(1, $_GET['numQuestion']);
$sqliteQuery->bindParam(2, $_GET['numQcm']);
$result = $sqliteQuery->execute();
for( $iSuiv = $numQcmSuiv, $j=$_GET['numQuestion'] ; $iSuiv <= $nbQuestionsRow['count(*)'] ; $iSuiv++ , $j++ ){
$sqliteQuery = $db->prepare('UPDATE QcmQuestion SET numQuestion=? WHERE numQuestion=? ');
$sqliteQuery = $db->prepare('UPDATE QcmQuestion SET numQuestion=? WHERE numQuestion=? AND numQcm=? ');
$sqliteQuery->bindParam(1, $j);
$sqliteQuery->bindParam(2, $iSuiv);
$sqliteQuery->bindParam(3, $_GET['numQcm']);
$result = $sqliteQuery->execute();
}
//même chose pour qcmreponse
$sqliteQuery = $db->prepare('DELETE FROM QcmReponse WHERE numQuestion= ? ');
$sqliteQuery = $db->prepare('DELETE FROM QcmReponse WHERE numQuestion= ? AND numQcm = ?');
$sqliteQuery->bindParam(1, $_GET['numQuestion']);
$sqliteQuery->bindParam(2, $_GET['numQcm']);
$result = $sqliteQuery->execute();
for( $iSuiv = $numQcmSuiv, $j=$_GET['numQuestion'] ; $iSuiv <= $nbQuestionsRow['count(*)'] ; $iSuiv++ , $j++ ){
$sqliteQuery = $db->prepare('UPDATE QcmReponse SET numQuestion=? WHERE numQuestion=? ');
$sqliteQuery = $db->prepare('UPDATE QcmReponse SET numQuestion=? WHERE numQuestion=? AND numQcm = ? ');
$sqliteQuery->bindParam(1, $j);
$sqliteQuery->bindParam(2, $iSuiv);
$sqliteQuery->bindParam(3, $_GET['numQcm']);
$result = $sqliteQuery->execute();
}
//même chose pour QcmCorrection
$sqliteQuery = $db->prepare('DELETE FROM QcmCorrection WHERE numQuestion= ? ');
$sqliteQuery = $db->prepare('DELETE FROM QcmCorrection WHERE numQuestion= ? AND numQcm=?');
$sqliteQuery->bindParam(1, $_GET['numQuestion']);
$sqliteQuery->bindParam(2, $_GET['numQcm']);
$result = $sqliteQuery->execute();
for( $iSuiv = $numQcmSuiv, $j=$_GET['numQuestion'] ; $iSuiv <= $nbQuestionsRow['count(*)'] ; $iSuiv++ , $j++ ){
$sqliteQuery = $db->prepare('UPDATE QcmCorrection SET numQuestion=? WHERE numQuestion=? ');
$sqliteQuery = $db->prepare('UPDATE QcmCorrection SET numQuestion=? WHERE numQuestion=? AND numQcm=? ');
$sqliteQuery->bindParam(1, $j);
$sqliteQuery->bindParam(2, $iSuiv);
$sqliteQuery->bindParam(3, $_GET['numQcm']);
$result = $sqliteQuery->execute();
}

Binary file not shown.

@ -7,99 +7,105 @@ class Controleur {
session_start();
$dVueEreur = array ();
/*if($this->isAdmin())
$_SESSION['typeSession'] = 'LJLf1';
else $_SESSION['typeSession'] = 'user';*/
$_SESSION['typeSession'] = 'LJLf1';
try{
$action=$_REQUEST['action'];
try{
$action=$_REQUEST['action'];
// echo $action;
switch($action) {
switch($action) {
case NULL :
//require ($rep.$vues['vueLogin']);
//$this->afficherQuestions();
require ($rep.$vues['vueAccueil']);
break;
case 'Retour au menu principal' :
//require ($rep.$vues['vueLogin']);
//$this->afficherQuestions();
require ($rep.$vues['vueAccueil']);
break;
case 'Dates de TP' :
require ($rep.$vues['vueDateTp']);
break;
case 'Ajouter une question' :
require ($rep.$vues['vueAdmin']);
break;
case 'TP':
//require ($rep.$vues['vueLogin']);
$this->afficherQuestions();
break;
case 'Afficher les questions':
//require ($rep.$vues['vueLogin']);
$this->afficherQuestions();
break;
case 'login' :
//$this->verificationConnexion();
require ($rep.$vues['vueLogin']);
break;
case 'Valider' :
//$this->verificationConnexion();
$this->Correction();
break;
case 'Demonstrations de cours' :
//$this->verificationConnexion();
$this->afficherDemonstrations();
break;
case 'Afficher les demonstrations' :
//$this->verificationConnexion();
$this->afficherDemonstrations();
break;
case 'Ajouter une demonstration' :
require ($rep.$vues['vueAjoutDemo']);
break;
case 'Générer Base de données aléatoire':
$this->resetRandomBdd();
break;
case 'ok' :
//$this->verificationConnexion();
$this->afficherDemonstrations();
break;
case 'Reintiliser les demonstrations' :
$this->resetDemonstrations();
break;
case 'Reintiliser les QCM' :
$this->resetQCM();
break;
case 'Réintiliser les questions' :
$this->resetQuestions();
break;
case 'QCM' :
$this->afficherQCM();
break;
case 'Ajouter QCM' :
require ($rep.$vues['vueAjoutQCM']);
break;
case 'Creation de table' :
$this->afficherCreationTable();
break;
case 'Gestion de tables' :
$this->afficherGestionTable();
break;
default:
$dVueEreur[] ="Erreur d'appel php";
require ($rep.$vues['erreur']);
break;
case NULL :
//require ($rep.$vues['vueLogin']);
//$this->afficherQuestions();
require ($rep.$vues['vueAccueil']);
break;
case 'Retour au menu principal' :
//require ($rep.$vues['vueLogin']);
//$this->afficherQuestions();
require ($rep.$vues['vueAccueil']);
break;
case 'Dates de TP' :
require ($rep.$vues['vueDateTp']);
break;
case 'Ajouter une question' :
require ($rep.$vues['vueAdmin']);
break;
case 'TP':
//require ($rep.$vues['vueLogin']);
$this->afficherQuestions();
break;
case 'Afficher les questions':
//require ($rep.$vues['vueLogin']);
$this->afficherQuestions();
break;
case 'login' :
//$this->verificationConnexion();
require ($rep.$vues['vueLogin']);
break;
case 'Valider' :
$this->Correction();
break;
case 'Demonstrations de cours' :
$this->afficherDemonstrations();
break;
case 'Afficher les demonstrations' :
//$this->verificationConnexion();
$this->afficherDemonstrations();
break;
case 'Ajouter une demonstration' :
require ($rep.$vues['vueAjoutDemo']);
break;
case 'Générer Base de données aléatoire':
$this->resetRandomBdd();
break;
case 'ok' :
$this->afficherDemonstrations();
break;
case 'Reintiliser les demonstrations' :
$this->resetDemonstrations();
break;
case 'Reintiliser les QCM' :
$this->resetQCM();
break;
case 'Réintiliser les questions' :
$this->resetQuestions();
break;
case 'QCM' :
$this->afficherQCM();
break;
case 'Ajouter QCM' :
require ($rep.$vues['vueAjoutQCM']);
break;
case 'Creation de table' :
$this->afficherCreationTable();
break;
case 'Gestion de tables' :
$this->afficherGestionTable();
break;
default:
$dVueEreur[] ="Erreur d'appel php";
require ($rep.$vues['erreur']);
break;
}
} catch (PDOException $e)
@ -113,6 +119,19 @@ class Controleur {
}
function isAdmin(){
switch($_SERVER['REMOTE_USER']){
case 'meelaichao':
return true;
break;
case 'palafour' :
return true;
break;
default :
return false;
}
}
function resetQCM(){
$db = new SqliteDb();
$db->createQCM();

@ -5,7 +5,14 @@
}
#frm-export {
margin-left: 75%;
}
#frm-export input{
width: 100px;
height : 55px;
}
.adm{
display: none;
}

@ -7,7 +7,14 @@ and open the template in the editor.
Created on : Jun 26, 2020, 10:36:40 AM
Author : Mehdi
*/
#frm-export, #frm-exportqcm {
margin-left: 75%;
}
#frm-export input, #frm-exportqcm input{
width: 100px;
height : 55px;
}
.adm{
display: none;
}

@ -1,2 +0,0 @@
NBA**1**3**5 premières lignes de la table EQUIPE** SELECT * FROM EQUIPE WHERE rownum<6
NBA**1**4**5 premières lignes de la table GAME** SELECT * FROM GAME WHERE rownum<6

@ -0,0 +1,5 @@
NBA**1**Exemple de requête pour selectionner les 2 premières lignes de la table JOUEUR**SELECT * FROM JOUEUR WHERE rownum<3
NBA**1**Exemple de requête pour selectionner les 2 premières lignes de la table STATS**SELECT * FROM STATS WHERE rownum<3
NBA**2**Exemple de requête pour selectionner ers lignes de la table GAME**SELECT * FROM GAME WHERE rownum<3
NBA**2**Exemple de requête pour selectionner les 2 )))))))) lignes de la table GAME**SELECT * FROM GAME WHERE rownum<3NBA**2**Exemple de requête pour selectionner les 2 premières lignes de la table GAME**SELECT * FROM GAME WHERE rownum<3
NBA**2**aaaaaaaaaaaaaaaaaa**aaaaaaaaaaaaaaaaaa

@ -0,0 +1,9 @@
NBA**1**Exemple de requête pour selectionner les 2 premières lignes de la table JOUEUR**SELECT * FROM JOUEUR WHERE rownum<3
NBA**1**Exemple de requête pour selectionner les 2 premières lignes de la table STATS**SELECT * FROM STATS WHERE rownum<3
NBA**2**Exemple de requête pour selectionner ers lignes de la table GAME**SELECT * FROM GAME WHERE rownum<3
NBA**2**Exemple de requête pour selectionner les 2 premières lignes de la table GAME**SELECT * FROM GAME WHERE rownum<3
NBA**2**Exemple de requête pour selectionner les 2 )))))))) lignes de la table GAME**SELECT * FROM GAME WHERE rownum<3
NBA**2**aaaaaaaaaaaaaaaaaa**aaaaaaaaaaaaaaaaaa
NBA**2**sd**qsd
NBA**2**Exemple de requête pour selectionner les 2 )))))))) lignes de la table GAME**SELECT * FROM GAME WHERE rownum<3NBA
NBA**2**aaaaaaaaaaaaaaaaaa**aaaaaaaaaaaaaaaaaaNBA

@ -0,0 +1,4 @@
1**sql**vraifaux**Ceci est la question 1**Ceci est la reponse 1 de la question 1(fausse)+++Ceci est la reponse 2 de la question 1(Vraie)+++Ceci est la reponse 3 de la question 1(Vraie)**2,,3
1**sql**vraifaux**Ceci est la question 2**Ceci est la reponse 1 de la question 2(Vraie)+++Ceci est la reponse 2 de la question 2(fausse)+++Ceci est la reponse 3 de la question 2(fausse)+++Ceci est la reponse 4 de la question 2(fausse)**1
2**EPSWORTH**test**Ceci est la question 1**Ceci est la reponse 1 de la question 1(5)---5+++Ceci est la reponse 2 de la question 1(11)---11+++Ceci est la reponse 3 de la question 1(12)---12
2**EPSWORTH**test**Ceci est la question 2**Ceci est la reponse 1 de la question 2(5)---5+++Ceci est la reponse 2 de la question 2(11)---11+++Ceci est la reponse 3 de la question 2(12)---12

@ -0,0 +1,36 @@
3**Test d'Epworth**test**Pendant que vous êtes occupé à lire un document**0---0+++1---1+++2---2+++3---3
3**Test d'Epworth**test**Devant la télévision ou au cinéma**0---0+++1---1+++2---2+++3---3
3**Test d'Epworth**test**Assis inactif dans un lieu public(salle dattente, théâtre,…)**0---0+++1---1+++2---2+++3---3
3**Test d'Epworth**test**Passager, depuis au moins une heure sans interruptions, dune voiture ou dun transport en commun(train, bus, avion, …)**0---0+++1---1+++2---2+++3---3
3**Test d'Epworth**test**Allongé pour une sieste, lorsque les circonstances le permettent**0---0+++1---1+++2---2+++3---3
3**Test d'Epworth**test**En position assise au cours dune conversation (ou au téléphone) avec un proche**0---0+++1---1+++2---2+++3---3
3**Test d'Epworth**test**Tranquillement assis à table à la fin dun repas sans alcool**0---0+++1---1+++2---2+++3---3
3**Test d'Epworth**test**Au volant dune voiture immobilisée depuis quelques minutes dans un embouteillage**0---0+++1---1+++2---2+++3---3
4**Accro**test**Passez-vous plus de temps sur votre smartphone que vous ne le pensez ?**oui---1+++non---0
4**Accro**test**Vous arrive-t-il de passer régulièrement du temps sans réfléchir en regardant votre smartphone ?**oui---1+++non---0
4**Accro**test**Avez-vous limpression de perdre la notion du temps lorsque vous êtes sur votre smartphone ?**oui---1+++non---0
4**Accro**test**Passez-vous plus de temps à envoyer des textos, des tweets ou des emails quà parler aux gens en personne ?**oui---1+++non---0
4**Accro**test**Passez-vous de plus en plus de temps sur votre smartphone ?**oui---1+++non---0
4**Accro**test**Souhaiteriez-vous passer moins de temps à utiliser votre smartphone ?**oui---1+++non---0
4**Accro**test**Dormez-vous régulièrement avec votre smartphone allumé sous votre oreiller ou près de votre lit ?**oui---1+++non---0
4**Accro**test**Vous arrive-t-il de regarder et de répondre à des textos, des tweets et des emails à toute heure du jour et de la nuit, même si cela signifie interrompre dautres choses que vous êtes en train de faire ?**oui---1+++non---0
4**Accro**test**Envoyez-vous des textos, des emails, des tweets, des messages Snapchat, des messages Facebook ou surfez-vous en conduisant ou en faisant dautres activités semblables qui exigent votre attention et votre concentration ?**oui---1+++non---0
4**Accro**test**Avez-vous limpression que lutilisation de votre smartphone diminue parfois votre productivité ?**oui---1+++non---0
4**Accro**test**Vous sentez-vous réticent à rester sans votre smartphone, même pour une courte période de temps ?**oui---1+++non---0
4**Accro**test**Vous sentez-vous mal à laise lorsque vous laissez accidentellement votre smartphone dans la voiture ou à la maison, que vous navez pas de réseau ou que vous avez un smartphone cassé ?**oui---1+++non---0
4**Accro**test**Lorsque vous mangez, votre smartphone est-il toujours à portée de main à côté de vous à table ?**oui---1+++non---0
4**Accro**test**Lorsque votre smartphone sonne, émet des bips ou vibre, ressentez-vous une forte envie de vérifier les textos, les tweets, les emails, les mises à jour, et ainsi de suite?**oui---1+++non---0
4**Accro**test**Vous arrive-t-il de vérifier votre smartphone plusieurs fois par jour, même si vous savez quil ny a probablement rien de nouveau ou dimportant à voir ?**oui---1+++non---0
5**Audit**test**A quelle fréquence vous arrive-t-il de consommer des boissons contenant de l'alcool ?**Jamais---0+++Au moins une fois par mois---1+++2 à 4 fois par mois---2+++2 à 3 fois par semaine---3+++4 fois ou plus par semaine---4
5**Audit**test** Combien de verres standards buvez-vous au cours d'une journée ordinaire où vous buvez de l'alcool ?**1 ou 2---0+++3 ou 4---1+++4 ou 5---2+++7 ou 9---3+++10 ou plus---4
5**Audit**test**Au cours d'une méme occasion, combien de fois vous arrive-t-il de boire six verres standards ou plus**Jamais---0+++Moins d'une fois par mois---1+++1 fois par mois---2+++1 fois par semaine---3+++Tous les jours ou presque---4
5**Audit**test** Dans les 12 derniers mois, combien de fois avez-vous observé que vous n'étiez plus capable de vous arrêter de boire après avoir commencé**Jamais---0+++Moins d'une fois par mois---1+++1 fois par mois---2+++1 fois par semaine---3+++Tous les jours ou presque---4
5**Audit**test**Dans les 12 derniers mois, combien de fois le fait d'avoir bu de l'alcool, vous-a-t-il empêché de faire ce qu'on attendait normalemet de vous ?**Jamais---0+++Moins d'une fois par mois---1+++1 fois par mois---2+++1 fois par semaine---3+++Tous les jours ou presque---4
5**Audit**test**Dans les 12 derniers mois, combien de fois, après une période de forte consommation, avez-vous du boire de l'alcool dès le matin pour vous remettre en forme ?**Jamais---0+++Moins d'une fois par mois---1+++1 fois par mois---2+++1 fois par semaine---3+++Tous les jours ou presque---4
5**Audit**test**Dans les 12 derniers mois, combien de fois avez-vou eu un sentiment de culpabilité ou de regret après avoir bu ?**Jamais---0+++Moins d'une fois par mois---1+++1 fois par mois---2+++1 fois par semaine---3+++Tous les jours ou presque---4
5**Audit**test**Dans les 12 derniers mois, combien de fois avez vous été incapable de vous souvenir de ce qui s'était passé la nuit précédente parce que vous aviez bu ?**Jamais---0+++Moins d'une fois par mois---1+++1 fois par mois---2+++1 fois par semaine---3+++Tous les jours ou presque---4
5**Audit**test** Vous êtes-vous blessé ou avez-vous blessé quelqu'un parce que vous aviez bu ?**Non---0+++Oui mais pas dans l'année passée---2+++Oui au cours de l'année dernière---4
5**Audit**test**Est-ce qu'un parent, un ami, un médecin ou un autre professionnel de santé s'est déjà préoccupé de votre consommation d'alcool et vous a conseillé de la diminuer ?**Non---0+++Oui mais pas dans l'année passée---2+++Oui au cours de l'année dernière---4
5**Audit**test**Vous êtes :**Un homme---0+++Une femme---1

@ -1,2 +1,3 @@
requete**NBA**1**1**Lister les joueurs de la table Equipe**SELECT * FROM EQUIPE**10**o
requete**NBA**1**2**Lister les joueurs de la table JOUEUR**SELECT * FROM JOUEUR**10**o
fonction**NBA**1**2**Lister les jofsdfsdfsdf la table JOUEUR**SELECT * FROM JOUEUR**10**o**createfsdf

@ -1,45 +1,64 @@
<?php
/*
* To change this license header, choose License Headers in Project Properties.
* To change this template file, choose Tools | Templates
* and open the template in the editor.
*/
/**
* Description of QCM
*
* @author Mehdi
*/
class QCM {
private $num;
private $nom;
private $type;
private $questions = array();
private $numQuestion;
private $question;
private $reponse = array();
function __construct($numQuestion,$question,$reponse){
$this->numQuestion = $numQuestion;
$this->question = $question;
$this->reponse = $reponse;
function __construct($numQuestion,$nom,$type,$questions){
$this->num = $numQuestion;
$this->nom = $nom;
$this->type = $type;
$this->questions = $questions;
}
// Getters
function getNumQuestion() {
return $this->numQuestion;
function getNum() {
return $this->num;
}
function getQuestion() {
return $this->question;
function getNom() {
return $this->nom;
}
function getReponse() {
return $this->reponse;
function getType() {
return $this->type;
}
// Setters
function setNumQuestion($numQuestion) {
$this->numQuestion = $numQuestion;
function getQuestions() {
return $this->questions;
}
function setQuestion($question) {
$this->question = $question;
// Setters
function setNum($num) {
$this->num = $num;
}
function setReponse($reponse) {
$this->reponse = $reponse;
function setNom($nom) {
$this->nom = $nom;
}
}
function setType($type) {
$this->type = $type;
}
function setQuestions($questions) {
$this->questions = $questions;
}
}

@ -0,0 +1,57 @@
<?php
class QuestionQCM {
private $numQuestion;
private $question;
private $bareme;
private $reponse = array();
function __construct($numQuestion,$question,$reponse,$bareme){
$this->numQuestion = $numQuestion;
$this->question = $question;
$this->reponse = $reponse;
$this->bareme= $bareme;
}
// Getters
function getNumQuestion() {
return $this->numQuestion;
}
function getQuestion() {
return $this->question;
}
function getReponse() {
return $this->reponse;
}
function getBareme() {
return $this->bareme;
}
// Setters
function setNumQuestion($numQuestion) {
$this->numQuestion = $numQuestion;
}
function setQuestion($question) {
$this->question = $question;
}
function setReponse($reponse) {
$this->reponse = $reponse;
}
function setBareme($bareme) {
$this->bareme = $bareme;
}
}

@ -3,7 +3,15 @@
<editor-bookmarks xmlns="http://www.netbeans.org/ns/editor-bookmarks/2" lastBookmarkId="0"/>
<open-files xmlns="http://www.netbeans.org/ns/projectui-open-files/2">
<group>
<file>file:/C:/xampp/htdocs/BddCorrect/BDD/OracleDb.php</file>
<file>file:/C:/xampp/htdocs/BddCorrect/vues/VueQCM.php</file>
<file>file:/C:/xampp/htdocs/BddCorrect/vues/VueAdmin.php</file>
<file>file:/C:/xampp/htdocs/BddCorrect/vues/VueAjoutDemo.php</file>
<file>file:/C:/xampp/htdocs/BddCorrect/BDD/SqliteDb.php</file>
<file>file:/C:/xampp/htdocs/BddCorrect/Traitement/Export.php</file>
<file>file:/C:/xampp/htdocs/BddCorrect/vues/vueAjoutQCM.php</file>
<file>file:/C:/xampp/htdocs/BddCorrect/Traitement/AjoutQCM.php</file>
<file>file:/C:/xampp/htdocs/BddCorrect/DAL/QCMGateway.php</file>
<file>file:/C:/xampp/htdocs/BddCorrect/vues/VueDemonstration.php</file>
</group>
</open-files>
</project-private>

Binary file not shown.

@ -57,12 +57,12 @@
</div>
<form method="get">
<input id="inp-questions" class="bouton" type="submit" name="action" value="Afficher les questions" hidden>
</form>
<form method="get" id="frm-demo">
<input id="inp-demo" class="bouton" type="submit" name="action" value="Afficher les questions" >
</form><br/>
<input type="file" id="fileInput"> <br/>
<label>Requête sous forme : <strong> type(requete\functionCorrect)**NBA**numeroDuTp**NumeroDeQuestion**Consigne**requete(SELECT...)**barème**verificationAvecBddAleatoire(o\n)**fonction(create function ...) -optionnel</strong> </label>
<label>Requête sous forme : <strong> type(requete\fonction)**NBA**NumeroDeQuestion**Consigne**requete(SELECT...)**barème**verificationAvecBddAleatoire(o\n)**fonction(create function ...) -optionnel</strong> </label>
<p> Tous les noms de table doivent être en majuscule</p>
</body>
@ -87,7 +87,6 @@
if(mot == 0){
var tp = $('#tp').val() ;
var num = $('#num').val() ;
var points = $('#points').val() ;
var consigne = $('#consigne').val() ;
var reponse = $('#reponse').val() ;
@ -100,34 +99,32 @@
var type = mot[0];
var bdd = mot[1];
var tp = mot[2];
var num = mot[3];
var consigne = mot[4];
var reponse = mot[5];
var points = mot[6];
var aleatoire = mot[7];
var fonction = mot[8];
var consigne = mot[3];
var reponse = mot[4];
var points = mot[5];
var aleatoire = mot[6];
var fonction = mot[7];
if(fonction != null){
//alert(type+'-'+bdd+'-'+tp+'-'+num+'-'+consigne+'-'+reponse+'-'+points+'-'+aleatoire+'-'+fonction);
//alert()
alert('ok');
}
//else alert(type+'-'+bdd+'-'+tp+'-'+num+'-'+consigne+'-'+reponse+'-'+points+'-'+aleatoire);
}
$.get("Traitement/AjoutQuestion.php", { tp: tp,num: num,points: points,consigne: consigne,reponse: reponse,type: type,aleatoire: aleatoire,bdd: bdd, fonction : fonction},
$.get("Traitement/AjoutQuestion.php", { tp: tp,points: points,consigne: consigne,reponse: reponse,type: type,aleatoire: aleatoire,bdd: bdd, fonction : fonction},
function(data) {
$('#erreur').html(data);
if (data.includes("AJOUT") == true){
//alert("La question a été ajoutée");
if(mot == 0){
var result = confirm("La question a été ajoutée. Afficher les Questions ?");
if(result) $('#inp-questions').trigger("click");
}
}
//else alert("Erreur");
if(mot != 0){
$('#erreur').append('<div class="err">'+data+'</div>');
}
else{
$('#erreur').empty();
setTimeout( function(){ $('#erreur').html(data); } , 400 );
}
//$('#demoForm')[0].reset();
});
});
}
function wait(ms){
@ -156,12 +153,12 @@
var lignes = content.split('\n');
for(var line = 0; line < lignes.length; line++){
var mot = lignes[line].split('**');
SubmitAjoutQuestion(mot);
if (mot != "") SubmitAjoutQuestion(mot);
//mots.push(mot);
console.log(mot[0]);console.log(mot[1]);console.log(mot[2]);console.log(mot[3]);
}
$('#inp-questions').trigger("click");
//$('#inp-questions').trigger("click");
}
reader.readAsText(file);

@ -44,15 +44,17 @@
</form><br/>
<input type="file" id="fileInput"><br/>
<div>Format : <strong>NBA**numéro de chapitre**description**requete</strong></div>
</body>
<script>
function SubmitAjoutDemo(mot=0) {
//err = jQuery('<p class')
if(mot == 0){
var chapitre = $('#chapitre').val() ;
var numDemo = $('#numDemo').val() ;
var description = $('#description').val() ;
var reponse = $('#reponse').val() ;
var bdd = $("input[name='bdd']:checked").val();
@ -60,22 +62,28 @@
else {
var bdd =mot[0];
var chapitre = mot[1];
var numDemo = mot[2];
var description = mot[3];
var reponse = mot[4];
var description = mot[2];
var reponse = mot[3];
}
$.get("Traitement/AjoutDemonstration.php", { chapitre: chapitre,numDemo: numDemo,description: description,reponse: reponse,bdd: bdd},
$.get("Traitement/AjoutDemonstration.php", { chapitre: chapitre,description: description,reponse: reponse,bdd: bdd},
function(data) {
$('#erreur').html(data);
if(mot == 0){
var result = confirm("La demonstration a été ajoutée. Afficher les Demonstrations ?");
if(result) $('#inp-demo').trigger("click");
}
if(mot != 0){
$('#erreur').append('<div class="err">'+data+'</div>');
//$('.err').html(data);
/*var result = confirm("La demonstration a été ajoutée. Afficher les Demonstrations ?");
if(result) $('#inp-demo').trigger("click"); */
}
else{
$('#erreur').empty();
setTimeout( function(){ $('#erreur').html(data); } , 400 );
}
//$('#demoForm')[0].reset();
});
}
var fileInput = document.getElementById('fileInput');
var fileDisplayArea = document.getElementById('fileDisplayArea');
fileInput.addEventListener('change', function(e) {
@ -88,17 +96,18 @@
reader.onload = function(e) {
var content = reader.result;
//Here the content has been read successfuly
alert(content);
//alert(content);
var lignes = content.split('\n');
for(var line = 0; line < lignes.length; line++){
var mot = lignes[line].split('**');
SubmitAjoutDemo(mot);
if (mot != "")
SubmitAjoutDemo(mot);
//mots.push(mot);
console.log(mot[0]);console.log(mot[1]);console.log(mot[2]);console.log(mot[3]);
//console.log(mot[0]);console.log(mot[1]);console.log(mot[2]);console.log(mot[3]);
}
$('#inp-demo').trigger("click");
//$('#inp-demo').trigger("click");
}
reader.readAsText(file);

@ -18,7 +18,7 @@
<div id="content">
<nav class="navbar navbar-expand-lg navbar-dark bg-dark" id="mainNav">
<div class="container">
<a class="navbar-brand js-scroll-trigger" href="#page-top">Base De Données</a>
<a class="navbar-brand js-scroll-trigger" href="#page-top" onclick="scrollToTop">Base De Données</a>
<div class="collapse navbar-collapse" id="navbarResponsive">
<ul class="navbar-nav ml-auto">
<?php foreach ($dVueDemonstrations as $tp => $question){ ?>
@ -45,7 +45,7 @@
<div class="col-lg-8 mx-auto">
<h2 style = "text-transform:uppercase;"><?php echo $tp; ?></h2>
<form id="demoForm" method="get" >
<form class="demoForm" method="get" >
<?php $i=0;
foreach ($questions as $q) {
?>
@ -57,7 +57,7 @@
<input class="submitDemoData" type="button" value="Exécuter" onclick="SubmitDemoData(<?php echo $q->getNumQuestion(); ?>,<?php echo $q->getNumTp(); ?>);" >
<span id="inp-centre"> <input class="modifierDemonstration adm" type="button" value="Modifier" onclick="ModifierDemonstration(<?php echo $q->getNumQuestion(); ?>,<?php echo $q->getNumTp(); ?>);" >
<input class="supprimerDemonstration adm" type="button" value="Supprimer" onclick="SupprimerDemonstration(<?php echo $q->getNumQuestion(); ?>,<?php echo $q->getNumTp(); ?>);" ></span>
<span id="inp-centre"><input class="monterDemonstration adm" type="button" value="Monter" onclick="MonterDemonstration(<?php echo $q->getNumQuestion(); ?>,<?php echo $q->getNumTp(); ?>)" >
<span id="inp-gauche"><input class="monterDemonstration adm" type="button" value="Monter" onclick="MonterDemonstration(<?php echo $q->getNumQuestion(); ?>,<?php echo $q->getNumTp(); ?>)" >
<input class="descendreDemonstration adm" type="button" value="Descendre" onclick="DescendreDemonstration(<?php echo sizeof($questions); ?>,<?php echo $q->getNumQuestion(); ?>,<?php echo $q->getNumTp(); ?>)" ></span>
</p>
@ -84,12 +84,17 @@
<input type="submit" name="action" id="afficher-demo" value="Afficher les demonstrations" style='display:none'>
<input id="inp-ret" type="submit" name="action" value="Retour au menu principal" >
</form>
<div id="erreur">
</div>
<input type="text" id="verif-ad" value="<?php echo $_SESSION['typeSession'];?>" hidden/>
<form id="frm-export" class="adm">
<input type="button" value="Exporter" onclick="ExporterDemonstrations()" />
</form>
<input type="text" id="verif-ad" value="<?php echo $_SESSION['typeSession'];?>" hidden/>
<script>
function scrollToTop() {
window.scrollTo(0, 0);
}
$( document ).ready(function() {
var ad = $('#verif-ad').val();
@ -148,37 +153,43 @@
}
}
function changerSection(tp,keys){
tpk = keys.split(",");
tpk.forEach(function(entry) {
$("#c"+entry).hide();
console.log(entry);
});
$("#c"+tp).show();
}
function ModifierDemonstration(numDemo, numChapitre) {
$.get("Traitement/ModificationDemonstration.php", { numDemo : numDemo, numChapitre : numChapitre },
function(data) {
$('#vued').empty();
$('#vued').html(data);
//$('#questionsForm')[0].reset();
//location.reload();
});
}
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);
function changerSection(tp,keys){
tpk = keys.split(",");
tpk.forEach(function(entry) {
$("#c"+entry).hide();
console.log(entry);
});
$("#c"+tp).show();
}
function ModifierDemonstration(numDemo, numChapitre) {
$.get("Traitement/ModificationDemonstration.php", { numDemo : numDemo, numChapitre : numChapitre },
function(data) {
$('#vued').empty();
$('#vued').html(data);
//$('#questionsForm')[0].reset();
//location.reload();
});
}
function ExporterDemonstrations(){
type = 'demo';
$.get("Traitement/Export.php", { type:type}, function(data) {
alert(data);
alert("Les Demonstrations ont été exportées");
});
}
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);
</script>
</div>
<!-- Footer -->

@ -1,64 +0,0 @@
<html>
<head>
<meta charset="UTF-8">
<title></title>
<script src="css/jquery-3.5.1.js"></script>
<link rel="stylesheet" href="css/VueAdmin.css">
</head>
<body>
<form style="border:1px solid #ccc" method="GET" action="../Traitement/AjoutQuestion.php">
<div class="container">
<h1>Ajouter une question</h1>
<hr>
<label><b>TP n° : </b></label>
<input type="text" placeholder="Numéro du TP " id="tp" name='tp' required>
<label><b>Date début de tp </b></label>
<input type="date" id="debut" name='debut' required><br/><br/>
<label><b>Date fin de tp </b></label>
<input type="date" id="fin" name='fin' required><br/><br/><br/>
<div >
<input type="button" value="Valider" onclick="SubmitAjoutDate()" />
</div>
</div>
</form>
<div id="erreur">
</div>
<form method="get">
<input id="inp-questions" class="bouton" type="submit" name="action" value="Afficher les questions" hidden>
</form>
</body>
<script>
function SubmitAjoutDate() {
var tp = $('#tp').val();
var debut = $('#debut').val();
var fin = $('#fin').val();
alert('ok');
//alert(debut+'____'+fin)
$.get("Traitement/DateTp.php", { debut : debut, fin : fin , tp :tp },
function(data) {
$('#erreur').html(data);
});
}
</script>
</html>

@ -38,7 +38,7 @@
$date = date('Ymd');
if($date < $row['dateDebut'] || $date>$row['dateFin']) {
$dateVerif[$tp] = 0;
continue;
if($_SESSION['typeSession'] != 'LJLf1') continue;
} else $dateVerif[$tp] = 1;
?>
<li class="nav-item">
@ -62,12 +62,16 @@
<div style="font-weight: bold" id="Temps-Restant"></div>
<?php foreach ($dVueQuestions as $tp => $questions){ //die(print_r($questions));
if($dateVerif[$tp] == 0) continue; ?>
if($dateVerif[$tp] == 0){
if($_SESSION['typeSession'] == 'LJLf1')
$indispo = '(<i>Indisponible pour les non admin</i>)';
else continue;
} ?>
<section id="<?php echo 'o'.$tp; ?>">
<div class="container">
<div class="row">
<div class="col-lg-8 mx-auto">
<h2 style = "text-transform:uppercase; " ><?php echo $tp; ?></h2>
<h2 style = "text-transform:uppercase; " ><?php echo $tp; ?></h2><?php if(isset($indispo)) echo $indispo; unset($indispo); ?>
<form class="adm" style ="margin-left: 150px; ">
<input type="button" value="Modifier les dates" onclick="ModifierDates(<?php echo str_replace('tp', '', $tp);?>)" />
</form>
@ -110,6 +114,10 @@
<input id="inp-questions" class="bouton" type="submit" name="action" value="Afficher les questions" hidden>
<input id="inp-ret" type="submit" name="action" value="Retour au menu principal" >
</form>
<form id="frm-export" class="adm">
<input type="button" value="Exporter" onclick="ExporterTp()" />
</form>
<?php
@ -144,6 +152,14 @@
}
init();
function ExporterTp(){
type = 'tp';
$.get("Traitement/Export.php", { type:type}, function(data) {
alert(data);
alert("Les tp ont été exportées");
});
}
function ModifierDates(tp){
$.get("Traitement/VueGestionTp.php", { tp:tp},

@ -9,14 +9,23 @@
<link rel="stylesheet" href="css/bootstrap.min.css">
<link rel="stylesheet" href="css/VuePrincipale.css">
</head>
<?php
$tp_str = implode(",", array_keys($tabQCM));
?>
<body id="vueqcm">
<nav class="navbar navbar-expand-lg navbar-dark bg-dark" id="mainNav">
<div class="container">
<a class="navbar-brand js-scroll-trigger" href="#page-top">Base De Données</a>
<button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarResponsive" aria-controls="navbarResponsive" aria-expanded="false" aria-label="Toggle navigation">
<span class="navbar-toggler-icon"></span>
</button>
<div class="collapse navbar-collapse" id="navbarResponsive">
<ul class="navbar-nav ml-auto">
<?php foreach ($tabQCM as $qcm){ ?>
<li class="nav-item">
<a style = "text-transform:uppercase;" class="nav-link js-scroll-trigger" id="<?php echo $qcm->getNum(); ?>" onclick="changerSection('<?php echo $qcm->getNum();?>','<?php echo $tp_str ;?>')" ><?php echo $qcm->getNom(); ?></a>
</li>
<?php }?>
</ul>
</div>
</div>
</nav>
<header class="bg-primary text-white">
@ -26,43 +35,59 @@
</div>
</header>
<section id="TP2">
<?php
foreach ($tabQCM as $qcm){ ?>
<section id="<?php echo 'qcm'.$qcm->getNum(); ?>">
<div class="container">
<div class="row">
<div class="col-lg-8 mx-auto">
<h2>QCM</h2>
<form id="QCMForm" method="get" >
<?php $i=0; //shuffle($dVueQuestions);
foreach ($tabQCM as $qcm) {
?>
<p><?php echo $qcm->getNumQuestion() .'.'.$qcm->getQuestion(); ?> <br/>
<h2><?php echo $qcm->getNum().'-'.$qcm->getNom(); ?></h2>
<form class="QCMForm" method="get" >
<?php
foreach ($qcm->getQuestions() as $question) {
?>
<p><?php echo $question->getNumQuestion() .'.'.$question->getQuestion(); ?> <br/>
<?php
foreach ($qcm->getReponse() as $r ) { ?>
<input type="checkbox" id="textbox<?php echo $qcm->getNumQuestion().$r->getNumReponse(); ?>" name="radiobox<?php echo $qcm->getNumQuestion();?>" value="<?php echo $r->getReponse();?>" style="margin-bottom:15px"> <?php echo $r->getNumReponse().'.'.$r->getReponse(); ?> <br/>
<?php
}
foreach ($question->getReponse() as $r ) {
if($qcm->getType() == "vraifaux") {?>
<input type="checkbox" id="textbox<?php echo $qcm->getNum().$question->getNumQuestion().$r->getNumReponse(); ?>" name="radiobox<?php echo $qcm->getNum().$question->getNumQuestion();?>" value="<?php echo $r->getReponse();?>" style="margin-bottom:15px"> <?php echo $r->getNumReponse().'. '.$r->getReponse(); ?> <br/>
<?php }
else{?>
<input type="radio" id="textbox<?php echo $qcm->getNum().$question->getNumQuestion().$r->getNumReponse(); ?>" name="radiobox<?php echo $qcm->getNum().$question->getNumQuestion();?>" value="<?php echo $r->getNumReponse();?>" style="margin-bottom:15px" required> <?php echo $r->getNumReponse().'. '.$r->getReponse(); ?> <br/>
<?php }
}
if($qcm->getType() == "vraifaux"){
?>
<p> <input class="SubmitQCMData" type="button" value="Valider" onclick="SubmitQCMData(<?php echo $qcm->getNumQuestion(); ?>)" >
<span id="inp-centre"><input class="modifierQCM adm" type="button" value="Modifier" onclick="ModifierQCM(<?php echo $qcm->getNumQuestion(); ?>);" >
<input class="supprimerQCM adm" type="button" value="Supprimer" onclick="SupprimerQCM(<?php echo $qcm->getNumQuestion(); ?>);" ></span>
<span id="inp-gauche"><input class="monterQCM adm" type="button" value="Monter" onclick="MonterQCM(<?php echo $qcm->getNumQuestion(); ?>)" >
<input class="descendreQCM adm" type="button" value="Descendre" onclick="DescendreQCM(<?php echo sizeof($tabQCM); ?>,<?php echo $qcm->getNumQuestion(); ?>)" ></span>
</p>
<div id="results<?php echo $qcm->getNumQuestion(); ?>">
<!-- les résultats s'affichent içi -->
</div><br/>
<?php } //fin foreach ?>
<p>
<input class="SubmitQCMData" type="button" value="Valider" onclick="SubmitQCMData(<?php echo $qcm->getNum(); ?>,<?php echo $question->getNumQuestion(); ?>)" >
<?php }// fin if vraifaux ?>
<span id="inp-centre">
<input class="modifierQCM adm" type="button" value="Modifier" onclick="ModifierQCM(<?php echo $qcm->getNum(); ?>,<?php echo $question->getNumQuestion(); ?>);" >
<input class="supprimerQCM adm" type="button" value="Supprimer" onclick="SupprimerQCM(<?php echo $qcm->getNum(); ?>,<?php echo $question->getNumQuestion(); ?>);" >
</span>
<span id="inp-gauche">
<input class="monterQCM adm" type="button" value="Monter" onclick="MonterQCM(<?php echo $qcm->getNum(); ?>,<?php echo $question->getNumQuestion(); ?>)" >
<input class="descendreQCM adm" type="button" value="Descendre" onclick="DescendreQCM(<?php echo $qcm->getNum(); ?>,<?php echo sizeof($qcm->getQuestions()); ?>,<?php echo $question->getNumQuestion(); ?>)" >
</span>
</p>
<div id="results<?php echo $qcm->getNum().$question->getNumQuestion(); ?>">
<!-- les résultats s'affichent içi -->
</div><br/>
<?php
}//fin foreach
if($qcm->getType() !== "vraifaux"){?>
<input type="button" value="Valider" onclick="SubmitQCMDataTest(<?php echo $qcm->getNum(); ?>,<?php echo sizeof($qcm->getQuestions()); ?>)" />
<div id="results<?php echo $qcm->getNum(); ?>">
<!-- les résultats s'affichent içi -->
</div><br/>
<?php }
?>
</form>
</div>
</div>
</div>
</section>
<?php } //fin foreach ?>
<input type="text" id="verif-ad" value="<?php echo $_SESSION['typeSession'];?>" hidden/>
<form method="get" class="adm">
@ -73,25 +98,71 @@
<input id="inp-ret" type="submit" name="action" value="Retour au menu principal" >
</form>
<form id="frm-exportqcm" class="adm">
<input type="button" value="Exporter" onclick="ExporterQcm()" />
</form>
<script>
function SubmitQCMData(numQuestion) {
//document.write($('#textbox'+numQuestion).val());
var name = "radiobox"+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 ExporterQcm(){
type = 'qcm';
$.get("Traitement/Export.php", { type:type}, function(data) {
alert(data);
alert("Les qcm ont été exportées");
});
}
function changerSection(tp,keys){
var qcm = tp;
var numQcm;
tpk = keys.split(",");
tpk.forEach(function(entry) {
numQcm = parseInt(entry)+1;
$("#qcm"+numQcm).hide();
console.log(numQcm);
});
$("#qcm"+qcm).show();
}
function SubmitQCMData(numQcm,numQuestion) {
var rep = [];
var verif = 0;
//alert($('input[name*="radiobox'+numQuestion+'"]').length);
for(var i=1 ; i<=$('input[name*="radiobox'+numQcm+numQuestion+'"]').length ; i++){
if ($('#textbox'+numQcm+numQuestion+i).is(':checked')){
rep.push(i);
verif++;
}
}
if(verif == 0) return ;
$.get("Traitement/CorrectionQCM.php", {numQcm:numQcm, numQuestion: numQuestion, rep : rep},
function(data) {
$('#results'+numQcm+numQuestion).html(data);
});
}
function SubmitQCMDataTest(numQcm, nbQuestions) {
var type = 'test';
var rep = [];
$('#results'+numQcm).empty();
for(var numQuestion=1 ; numQuestion<=nbQuestions ; numQuestion++){
rep[numQuestion] = [];
if(!$("input[name='radiobox"+numQcm+numQuestion+"']:checked").val()){
$('#results'+numQcm).append("<b>Veuillez répondre à toutes les questions</b>");
return;
}
rep[numQuestion].push($("input[name='radiobox"+numQcm+numQuestion+"']:checked").val());
}
$.get("Traitement/CorrectionQCM.php", {type : type , numQcm:numQcm, rep : rep},
function(data) {
$('#results'+numQuestion).html(data);
//$('#QCMForm')[0].reset();
$('#results'+numQcm).html(data);
});
}
function MonterQCM(numQuestion) {
function MonterQCM(numQcm,numQuestion) {
if(numQuestion > 1){
$.get("Traitement/OrdreQCM.php", { numQuestion : numQuestion },
$.get("Traitement/OrdreQCM.php", { numQcm:numQcm, numQuestion : numQuestion },
function(data) {
//$('#questionsForm')[0].reset();
@ -102,11 +173,11 @@
}
}
function DescendreQCM(nbQuestions,numQuestion) {
function DescendreQCM(numQcm,nbQuestions,numQuestion) {
//alert(nbQuestions);
var des = 1;
if(numQuestion < nbQuestions){
$.get("Traitement/OrdreQCM.php", { des : des , numQuestion : numQuestion },
$.get("Traitement/OrdreQCM.php", { numQcm:numQcm,des : des , numQuestion : numQuestion },
function(data) {
//$('#questionsForm')[0].reset();
@ -116,12 +187,12 @@
}
}
function SupprimerQCM(numQuestion)
function SupprimerQCM(numQcm,numQuestion)
{
var result = confirm("Êtes-vous sûr de vouloir supprimer la question "+numQuestion+" ?");
var result = confirm("Êtes-vous sûr de vouloir supprimer la question "+numQuestion+" du qcm "+numQcm+" ?");
if(result){
var type = "qcm";
$.get("Traitement/Suppression.php", { numQuestion : numQuestion ,qcm : type},
$.get("Traitement/Suppression.php", { numQcm :numQcm, numQuestion : numQuestion ,qcm : type},
function(data) {
//$('#results'+numDemo+numChapitre).html(data);
//$('#questionsForm')[0].reset();
@ -129,8 +200,8 @@
});
}
}
function ModifierQCM(numQuestion) {
$.get("Traitement/ModificationQCM.php", { numQuestion : numQuestion },
function ModifierQCM(numQcm , numQuestion) {
$.get("Traitement/ModificationQCM.php", { numQcm : numQcm, numQuestion : numQuestion },
function(data) {
$('#vueqcm').empty();
$('#vueqcm').html(data);

@ -7,7 +7,16 @@
<link rel="stylesheet" href="css/VueAdmin.css">
</head>
<?php require_once('BDD/SqliteDb.php');
$db = new SqliteDb();
$reponseQuery = 'SELECT count(*) FROM QcmCorrection WHERE numQuestion=? ';
$stmt = $db->prepare($reponseQuery);
$stmt->bindParam(1, $q['numQuestion']);
$reponseResult = $stmt->execute();
$countRow = $reponseResult->fetchArray();
?>
<body>
<form style="border:1px solid #ccc" method="GET" action="Traitement/AjoutQuestion.php">
<div class="container">
@ -16,22 +25,36 @@
<h1>Ajouter une question(QCM)</h1>
<hr>
<label><b>Numéro du Qcm : </b></label>
<input type="text" placeholder="Ecrire le numéro du qcm..." id="numQcm" required>
<label><b>Nom du Qcm : (si nouveau) </b></label>
<input type="text" placeholder="Ecrire le nom du qcm..." id="nom" >
<label><b>Consigne : </b></label>
<input type="text" placeholder="Ecrire l'intitulé de la démonstration..." id="consigne" required>
<input type="text" placeholder="Ecrire l'intitulé de la question..." id="consigne" required>
<label><b>Réponse 1 : </b></label>
<input type="text" id="choix1" required>
<label><b>Réponse 2 : </b></label>
<input type="text" id="choix2" required>
<b><label for="type">Type de Qcm ?</label></b><br/><br/><div></div>
<select name="type" id="type" class="type">
<option value="vraifaux" label="Vrai ou Faux"></option>
<option value="test" label="enquête"></option>
</select>
<br/><br/><div></div>
<b><label for="nb_reponse">Nombre de choix de réponses ?</label></b><br/><br/><div></div>
<select name="nb_reponse" id="nbReponses" class="1to100">
<?php for($i=1;$i<100;$i++){
?><option value="<?php echo $i;?>"><?php echo $i;?></option>
<?php } ?>
</select>
<br/><br/><br/>
<label><b>Réponse 3 : </b></label>
<input type="text" id="choix3" required>
<label><b>Bonne(s) Réponse(s) ? </b><br/>
<input type="checkbox" id="rep1" name="reponse" value="1" style="margin-bottom:15px" > 1 <br/>
<input type="checkbox" id="rep2" name="reponse" value="2" style="margin-bottom:15px"> 2 <br/>
<input type="checkbox" id="rep3" name="reponse" value="3" style="margin-bottom:15px"> 3 <br/>
<div id="ireponses"></div>
<label id="labelBrep"><b>Bonne(s) Réponse(s) ? </b><br/>
<div id="breponses"> </div>
</label><br/>
<div >
@ -47,37 +70,146 @@
<input id="inp-qcm" class="bouton" type="submit" name="action" value="QCM" >
</form>
<input type="file" id="fileInput"> <br/>
<label>QCM sous forme : <strong> Consigne**Choix1__choix2__...**barème**verificationAvecBddAleatoire(o\n)**fonction(create function ...) -optionnel</strong> </label>
<p> Tous les noms de table doivent être en majuscule</p>
</body>
<script>
function SubmitAjoutQCM() {
$(document).ready(function() {
$('#nbReponses').change(function() {
$('#breponses').empty();
$('#ireponses').empty();
for(i=1 ; i<=$(this).val() ;i++){
if($('#type').val() !== 'test'){
$('#labelBrep').show();
$('#breponses').append('<input type="checkbox" id="rep'+i+'" name="reponse" value="'+i+'">'+i+'<br/>');
$('#ireponses').append('<label><b>Réponse '+i+' : </b></label>');
$('#ireponses').append('<input type="text" id="choix'+i+'" required>');
}
else {
$('#labelBrep').hide();
$('#ireponses').append('<label><b>Réponse '+i+' : </b></label>');
$('#ireponses').append('<input type="text" id="choix'+i+'" required>');
$('#ireponses').append('<input type="text" id="points'+i+'" name="bareme" placeholder="Ecrire le nombre de points pour cette réponse"><br/>');
}
}
});
$('#type').change(function() {
$('#breponses').empty();
$('#ireponses').empty();
if($(this).val() == 'test'){
$('#labelBrep').hide();
for(i=1 ; i<=$('#nbReponses').val() ;i++){
$('#ireponses').append('<label><b>Réponse '+i+' : </b></label>');
$('#ireponses').append('<input type="text" id="choix'+i+'" required>');
$('#ireponses').append('<input type="text" id="points'+i+'" name="bareme" placeholder="Ecrire le nombre de points pour cette réponse"><br/>');
}
}
else {
$( "input[name*='bareme']" ).remove();
$('#labelBrep').show();
for(i=1 ; i<=$('#nbReponses').val() ;i++){
$('#breponses').append('<input type="checkbox" id="rep'+i+'" name="reponse" value="'+i+'">'+i+'<br/>');
$('#ireponses').append('<label><b>Réponse '+i+' : </b></label>');
$('#ireponses').append('<input type="text" id="choix'+i+'" required>');
}
}
});
});
function SubmitAjoutQCM(mot=0) {
var reponse = [];
var choix = [];
if(mot==0){
var numQcm = $('#numQcm').val();
var nomQcm = "existe";
var type = $('#type').val();
if($('#nom').val()){
nomQcm = $('#nom').val();
}
var nbRep = $('#nbReponses').val();
//var chapitre = $('#chapitre').val() ;
var numQuestion = $('#numQuestion').val() ;
var consigne = $('#consigne').val() ;
var choix1= $('#choix1').val() ;
var choix2= $('#choix2').val() ;
var choix3= $('#choix3').val() ;
for( var i = 1 ; i<=nbRep ; i++){
if ( $('#rep'+i).is( ":checked" ))
reponse.push($('#rep'+i).val());
if(type !== 'test')
choix.push($('#choix'+i).val());
else{
choix.push($('#choix'+i).val()+'---'+$('#points'+i).val())
}
}
var rep1 = $('#rep1').is(':checked');
var rep2 = $('#rep2').is(':checked');
var rep3 = $('#rep3').is(':checked');
var consigne = $('#consigne').val() ;
}
else {
var numQcm = mot[0];
var nomQcm = mot[1];
var type = mot[2];
var consigne = mot[3];
var leschoix = mot[4].split('+++');
for(var line = 0; line < leschoix.length; line++){
choix.push(leschoix[line]);
}
if(type == 'vraifaux'){
var brep = mot[5].split(',,');
for(var line = 0; line < brep.length; line++){
alert(consigne+'='+brep[line]);
reponse.push(brep[line]);
}
}
}
//var reponse = $('#reponse').val() ;
//var reponse = $("input[name='reponse']:checked").val();
$.get("Traitement/AjoutQCM.php", {numQuestion: numQuestion,consigne: consigne,choix1: choix1,choix2: choix2,choix3: choix3,rep1 : rep1, rep2 : rep2, rep3 : rep3},
function(data) {
$('#erreur').html(data);
if (data.includes("AJOUT") == true){
var result = confirm("La question a été ajoutée. Afficher les QCM ?");
if(result) $('#inp-qcm').trigger("click");
$.get("Traitement/AjoutQCM.php", {type : type , numQcm : numQcm , nomQcm : nomQcm,consigne: consigne, reponse : reponse, choix : choix},
function(data) {
$('#erreur').html(data);
if (data.includes("AJOUT") == true){
/*var result = confirm("La question a été ajoutée. Afficher les QCM ?");
if(result) $('#inp-qcm').trigger("click"); */
}
//$('#demoForm')[0].reset();
});
}
var fileInput = document.getElementById('fileInput');
var fileDisplayArea = document.getElementById('fileDisplayArea');
fileInput.addEventListener('change', function(e) {
var file = fileInput.files[0];
var textType = /text.*/;
if (file.type.match(textType)) {
var reader = new FileReader();
reader.onload = function(e) {
var content = reader.result;
//Here the content has been read successfuly
//alert(content);
var lignes = content.split('\n');
for(var line = 0; line < lignes.length; line++){
var mot = lignes[line].split('**');
if (mot != "")
SubmitAjoutQCM(mot);
//mots.push(mot);
//console.log(mot[0]);console.log(mot[1]);console.log(mot[2]);console.log(mot[3]);
}
//$('#inp-demo').trigger("click");
}
reader.readAsText(file);
} else {
fileDisplayArea.innerText = "fichier non supporté"
}
//$('#demoForm')[0].reset();
});
}
});
</script>
</html>

@ -1,133 +0,0 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title></title>
<link rel="stylesheet" href="css/bootstrap.min.css">
<link rel="stylesheet" href="css/VuePrincipale.css">
</head>
<body>
<nav class="navbar navbar-expand-lg navbar-dark bg-dark fixed-top" id="mainNav">
<div class="container">
<a class="navbar-brand js-scroll-trigger" href="#page-top">TP de Base De Données</a>
<button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarResponsive" aria-controls="navbarResponsive" aria-expanded="false" aria-label="Toggle navigation">
<span class="navbar-toggler-icon"></span>
</button>
<div class="collapse navbar-collapse" id="navbarResponsive">
<ul class="navbar-nav ml-auto">
<li class="nav-item">
<a class="nav-link js-scroll-trigger" href="#TP2">TP2</a>
</li>
<li class="nav-item">
<a class="nav-link js-scroll-trigger" href="#TP3">TP3</a>
</li>
<li class="nav-item">
<a class="nav-link js-scroll-trigger" href="#TP4">TP4</a>
</li>
<li class="nav-item">
<a class="nav-link js-scroll-trigger" href="#TP5">TP5</a>
</li>
</ul>
</div>
</div>
</nav>
<header class="bg-primary text-white">
<div class="container text-center">
<h1>test</h1>
<p class="lead">TEST</p>
</div>
</header>
<div style="font-weight: bold" id="Temps-Restant"></div>
<section id="TP2">
<div class="container">
<div class="row">
<div class="col-lg-8 mx-auto">
<h2>TP 2</h2>
<form method="post" action="Correcteur.php" name="Exam">
<?php $i=0;
foreach ($dVueQuestions as $q) { ?>
<p><?php $i++; echo $q->getNumQuestion() .'.'.$q->getQuestion(); $_SESSION['num']=array(); $_SESSION['num'][$i] =$q->getNumQuestion(); ?> <br/>
<textarea rows="5" cols="70" name="textbox[]" >
<?php echo (isset($_SESSION['fi'][$i]) ? $_SESSION['fi'][$i] : '') ?>
</textarea>
<strong>TEST</strong>
</p>
<?php } //fin foreach ?>
<p><input type="submit" ></p>
</form>
</div>
</div>
</div>
</section>
<form method="post" class="frm">
<input type="submit" name="test" id="test" value="Générer Base de données aléatoire" /><br/>
<input type="submit" name="regenerer" id="test" value="Réintiliser les questions" /><br/>
</form>
<a href="vues/VueAdmin.php"><button>Ajouter Une Question</button></a>
<a href="vues/VueLibre.php"><button>Creation table</button></a>
<?php
if(array_key_exists('test',$_POST)){
$oraDb = new OracleDb;
}
if(array_key_exists('regenerer',$_POST)){
$db = new SqliteDb();
$db->createTable();
$URL="index.php";
echo '<META HTTP-EQUIV="refresh" content="0;URL=' . $URL . '">';
}
?>
<script type="text/javascript">
var tempsMin =50 ;
var total_secondes =60*tempsMin;
tempsMin = parseInt(total_secondes/60);
secondes = parseInt(total_secondes%60);
document.getElementById("Temps-Restant").innerHTML='Temps restant: ' + tempsMin + ' minutes ' + secondes + ' secondes';
function init(){
document.getElementById("Temps-Restant").innerHTML='Temps restant: ' + tempsMin + ' minutes ' + secondes + ' secondes';
setTimeout("TempsRestant()",999);
}
function TempsRestant(){
document.getElementById("Temps-Restant").innerHTML='Temps restant: ' + tempsMin + ' minutes ' + secondes + ' secondes' ;
if(total_secondes <=0){
setTimeout('document.Exam.submit()',1);
}
else {
total_secondes = total_secondes -1;
tempsMin = parseInt(total_secondes/60);
secondes = parseInt(total_secondes%60);
setTimeout("TempsRestant()",999);
}
}
init();
</script>
<!-- Footer -->
<footer class="py-5 bg-dark">
<div class="container">
<p class="m-0 text-center text-white">IUT Clermont-Ferrand 2020</p>
</div>
<!-- /.container -->
</footer>
<!-- Bootstrap core JavaScript -->
<script src="vendor/jquery/jquery.min.js"></script>
<script src="vendor/bootstrap/js/bootstrap.bundle.min.js"></script>
<!-- Plugin JavaScript -->
<script src="vendor/jquery-easing/jquery.easing.min.js"></script>
<!-- Custom JavaScript for this theme -->
<script src="js/scrolling-nav.js"></script>
</body>
</html>
Loading…
Cancel
Save