You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

332 lines
17 KiB

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title></title>
<script src="css/jquery-3.5.1.min.js"></script>
<link rel="stylesheet" href="css/bootstrap.min.css">
<link rel="stylesheet" href="css/VuePrincipale.css">
</head>
<?php
require_once('BDD/SqliteDb.php');
$db = new SqliteDb();
//session_start();
$tp_str = implode(",", array_keys($tabQCM));
$user = $_SERVER['REMOTE_USER'];
?>
<body id="vueqcm">
<input type="text" id='tp_keys' value="<?php echo $tp_str; ?>" hidden>
<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>
<div class="collapse navbar-collapse" id="navbarResponsive">
<ul class="navbar-nav ml-auto">
<?php foreach ($tabQCM as $qcm){ if(sizeof($qcm->getQuestions())==0) continue; ?>
<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">
<div class="container text-center">
<h1>QCM</h1>
<p class="lead"></p>
</div>
</header>
<form method="get" role="form" >
<input id="inp-ret1" type="submit" name="action" value="Retour au menu principal" >
<input id="btn-ajout1" class="adm" type="submit" name="action" value="Ajouter QCM" />
</form>
<?php
foreach ($tabQCM as $qcm){ /*if(sizeof($qcm->getQuestions())==0) continue;*/ ?>
<section id="<?php echo 'qcm'.$qcm->getNum(); ?>">
<div class="container">
<div class="row">
<div class="col-lg-8 mx-auto">
<h2><?php echo $qcm->getNum().'-'.$qcm->getNom(); ?></h2>
<h5><?php echo $qcm->getIntroduction(); ?></h5>
<form class="QCMForm" method="get" >
<?php
foreach ($qcm->getQuestions() as $question) {
?>
<p><?php echo $question->getNumQuestion() .'.'.$question->getQuestion(); ?> <br/>
<?php
foreach ($question->getReponse() as $r ) {
if($qcm->getType() == "vraifaux") {
$query = $db->prepare('SELECT count(*) FROM QcmSauvegarde WHERE numQcm=? AND numQuestion=? AND numReponse = ? AND idEtudiant=?');
$numQcm =$qcm->getNum();
$numQuestion = $question->getNumQuestion();
$numReponse = $r->getNumReponse();
$query->bindParam(1,$numQcm);
$query->bindParam(2,$numQuestion);
$query->bindParam(3,$numReponse);
$query->bindParam(4,$user);
$result = $query->execute();
$reponseSave = $result->fetchArray(); ?>
<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 if($reponseSave['count(*)']!=0) echo 'checked'; ?>> <?php echo $r->getNumReponse().'. '.$r->getReponse(); ?> <br/>
<?php }
else{
$query = $db->prepare('SELECT count(*) FROM QcmSauvegarde WHERE numQcm=? AND numQuestion=? AND numReponse = ? AND idEtudiant=?');
$numQcm =$qcm->getNum();
$numQuestion = $question->getNumQuestion();
$numReponse = $r->getNumReponse();
$query->bindParam(1,$numQcm);
$query->bindParam(2,$numQuestion);
$query->bindParam(3,$numReponse);
$query->bindParam(4,$user);
$result = $query->execute();
$reponseSave = $result->fetchArray();
echo $r->getNumReponse().'.';?>
<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 if($reponseSave['count(*)']!=0) echo 'checked'; ?>> <?php echo $r->getReponse(); ?> <br/>
<?php }
}
if($qcm->getType() == "vraifaux"){
?>
<p>
<input class="SubmitQCMData" type="button" value="Valider" onclick="SubmitQCMData(<?php echo $qcm->getNum(); ?>,<?php echo $question->getNumQuestion(); ?>,<?php echo $question->getBareme(); ?>)" >
<?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">
<input id="inp-ret1" type="submit" value="Retour au menu principal" >
<input id="btn-ajout" type="submit" class="adm" name="action" value="Ajouter QCM" />
</form>
<form method="get" role="form">
<input id="inp-questions" class="bouton" type="submit" name="action" value="QCM" hidden>
</form>
<form id="frm-exportqcm" class="adm">
<input type="button" value="Exporter les QCM" onclick="ExporterQcm()" />
</form>
<form id="frm-exportnoteqcm" class="adm">
<input type="button" value="Exporter les notes" onclick="ExporterNotes()" />
</form>
<script>
function ExporterNotes(){
$.get("Traitement/Sauvegarde/ExportNotes.php", {},
function(data) {
alert(data+"Les notes sont exportées vers /var/www/html/Methodologie/Notes/QCM/");
$('#results11').html(data);
});
}
function ExporterQcm(){
type = 'qcm';
$.get("Traitement/Export.php", { type:type}, function(data) {
alert(data+"Les qcm sont exportées vers /var/www/html/Methodologie/imports/qcm/qcm_exportes.txt");
});
}
$(document).ready(function() {
var section = localStorage.getItem("section");
if( section !== null){
changerSection(section, $('#tp_keys').val());
}
else{
var tps = $('#tp_keys').val();
if(!tps) exit();
var i = 0;
var numQcm;
tpk = tps.split(",");
tpk.forEach(function(entry) {
numQcm = parseInt(entry)+1;
while(!$("#qcm"+numQcm).length){
numQcm++;
}
if(i==0) $("#qcm"+numQcm).show();
else $("#qcm"+numQcm).hide();
i++;
console.log(numQcm);
});
}
/////////////// FIN SECTION // DEBUT SAUVEGARDE ////
$('input[type="checkbox"]').change(function () {
var name = $(this).attr('id');
var check = $(this).prop('checked');
//alert("Change: " + name + " to " + check);
$.get("Traitement/Sauvegarde/QcmSave.php", {id : name, check : check , type:"vraifaux"},
function(data) {
$('#results11').html(data);
});
});
$('input[type="radio"]').change(function () {
var name = $(this).attr('id');
var check = $(this).prop('checked');
//alert("Change: " + name + " to " + check);
$.get("Traitement/Sauvegarde/QcmSave.php", {id : name, check : check, type:"test"},
function(data) {
$('#results11').html(data);
});
});
});
function changerSection(tp,keys){
if(!keys) exit();
var qcm = tp;
var numQcm;
tpk = keys.split(",");
tpk.forEach(function(entry) {
numQcm = parseInt(entry)+1;
while(!$("#qcm"+numQcm).length){
numQcm++;
}
$("#qcm"+numQcm).hide();
console.log(numQcm);
});
localStorage.setItem("section", tp);
$("#qcm"+qcm).show();
}
function SubmitQCMData(numQcm,numQuestion,bareme) {
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 , bareme : bareme},
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'+numQcm).html(data);
});
}
function MonterQCM(numQcm,numQuestion) {
if(numQuestion > 1){
$.get("Traitement/OrdreQCM.php", { numQcm:numQcm, numQuestion : numQuestion },
function(data) {
//$('#questionsForm')[0].reset();
//$('#erreur').html(data);
$("#inp-questions").trigger("click");
//window.location.replace("index.php");
});
}
}
function DescendreQCM(numQcm,nbQuestions,numQuestion) {
//alert(nbQuestions);
var des = 1;
if(numQuestion < nbQuestions){
$.get("Traitement/OrdreQCM.php", { numQcm:numQcm,des : des , numQuestion : numQuestion },
function(data) {
//$('#questionsForm')[0].reset();
$("#inp-questions").trigger("click");
//window.location.replace("index.php");
});
}
}
function SupprimerQCM(numQcm,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", { numQcm :numQcm, numQuestion : numQuestion ,qcm : type},
function(data) {
//$('#results'+numDemo+numChapitre).html(data);
//$('#questionsForm')[0].reset();
$("#inp-questions").trigger("click");
});
}
}
function ModifierQCM(numQcm , numQuestion) {
$.get("Traitement/ModificationQCM.php", { numQcm : numQcm, numQuestion : numQuestion },
function(data) {
$('#vueqcm').empty();
$('#vueqcm').html(data);
//$('#questionsForm')[0].reset();
//location.reload();
});
}
$( document ).ready(function() {
var ad = $('#verif-ad').val();
if(ad == 'LJLf1')
$( ".adm").show();
else $( ".adm").remove();
if(ad == 'test'){
$('#vuep').empty();
}
});
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>
</body>
</html>