Bonjour,
Je travaille sur un quizz en javascript dans le cadre de mon apprentissage, après avoir créé un quizz en js avec une dizaine de questions je dois le faire évoluer.
C'est à dire que je doit rajouté une deuxième serie de questions. Quelqu'un pourrait il me renseigné sur la meilleur façon de procédé pour séparer mon quizz en deux parties?
Merci !
Voilà mon code:
Modifié par samba (16 Mar 2015 - 11:01)
Je travaille sur un quizz en javascript dans le cadre de mon apprentissage, après avoir créé un quizz en js avec une dizaine de questions je dois le faire évoluer.
C'est à dire que je doit rajouté une deuxième serie de questions. Quelqu'un pourrait il me renseigné sur la meilleur façon de procédé pour séparer mon quizz en deux parties?
Merci !
Voilà mon code:
var quiztitle = "Quizz";
var quiz = [
{
"question" : "Q1: ici question?",
"image" : "image.png",
"choices" : [
"choix1",
"choix2",
"choix3"
],
"correct" : "réponse",
"explanation": "explication",
},
{
"question" : "Q2: ici question?",
"image" : "image.png",
"choices" : [
"choix1",
"choix2",
"choix3"
],
"correct" : "réponse",
"explanation" : "explication",
},
{
"question" : "Q3: ici question?",
"image" : "image.png",
"choices" : [
"choix1",
"choix2",
"choix3"
],
"correct" : "réponse",
"explanation" : "explication",
},
{
"question" : "Q4: ici question? ",
"image" : "image.png",
"choices" : [
"choix1",
"choix2",
"choix3"
],
"correct" : "réponse",
"explanation" : "explication",
},
{
"question" : "Q5: ici question?",
"image" : "image.png",
"choices" : [
"choix1",
"choix2",
"choix3"
],
"correct" : "réponse",
"explanation" : "expliaction",
}
];
var currentquestion = 0,
score = 0,
submt = true,
picked;
$(document).ready(function(){
$("#submitbutton").hide();
function htmlEncode(value) {
return $(document.createElement('div')).text(value).html();
}
function addChoices(choices) {
if (typeof choices !== "undefined" && $.type(choices) == "array") {
$('#choice-block').empty();
for (var i = 0; i < choices.length; i++) {
$(document.createElement('li')).addClass('choice choice-box').attr('data-index', i).text(choices[i]).appendTo('#choice-block');
}
}
}
/* function makeNewWindow(param) {
data = param;
if (!newWindow || newWindow.closed) {
newWindow = window.open("","sub","status,height=200,width=300");
setTimeout("writeToWindow()", 50); wait a bit to give time for the window to be created
} else if (newWindow.focus) {
newWindow.focus( ); means window is already open
}
}
*/
function nextQuestion() {
submt = true;
//alert("nQ");
$('#explanation').empty();
$('#question').text(quiz[currentquestion].question);
//$('#pager').text('Section' + Number(currentquestion + 1) + ' n° ' + quiz.length);
if (quiz[currentquestion].hasOwnProperty('image') && quiz[currentquestion].image !== "") {
if ($('#question-image').length === 0) {
$(document.createElement('img')).addClass('question-image').attr('id', 'question-image').attr('src', quiz[currentquestion].image).attr('alt', htmlEncode(quiz[currentquestion].question)).insertAfter('#question');
} else {
$('#question-image').attr('src', quiz[currentquestion].image).attr('alt', htmlEncode(quiz[currentquestion].question));
}
} else {
$('#question-image').remove();
}
addChoices(quiz[currentquestion].choices);
setupButtons();
//progressBarValue = (Number(currentquestion + 1) / quiz.length) * 100
//dispProgressBar();
}
function processQuestion() {
//alert(choice);
currentquestion++;
//alert(currentquestion);
$("#submitbutton").hide();
if (currentquestion == quiz.length) {
endQuiz();
} else {
nextQuestion();
}
}
function setupButtons() {
$('.choice').on('mouseover', function () {
$(this).css({
'background-color': '#e1e1e1'
});
});
$('.choice').on('mouseout', function () {
$(this).css({
'background-color': '#fff'
});
})
$('.choice').on('click', function () {
//alert("");
choice = $(this).attr('data-index');
$('.choice').removeAttr('style').off('mouseout mouseover');
$(this).css({
'border-color': '#222',
'font-weight': 700,
'background-color': '#c1c1c1'
});
if (quiz[currentquestion].choices[choice] == quiz[currentquestion].correct) {
$('.choice').eq(choice).css({
'background-color': '#50D943'
});
$('#explanation').html('<strong>Correct!</strong> ' + htmlEncode(quiz[currentquestion].explanation));
score++;
} else {
$('.choice').eq(choice).css({
'background-color': '#D92623'
});
$('#explanation').html('<strong>Incorrect.</strong> ' + htmlEncode(quiz[currentquestion].explanation));
}
$("#submitbutton").click(function(){
alert("click");
$('.choice').off('click', choice);
$(this).off('click');
processQuestion(choice);
});
if (submt) {
//alert("submit");
submt = false;
$('.choice').off('click');
$(this).off('click');
setTimeout(processQuestion,7000);
}
})
}
function endQuiz() {
$('#explanation').empty();
$('#question').empty();
$('#choice-block').empty();
$('#submitbutton').remove();
$('#question').text("Vous avez " + score + "bonne(s) réponse(s) sur " + quiz.length + " réponses correctes.");
$(document.createElement('h2')).css({
'text-align': 'center',
'font-size': '4em'
}).text(Math.round(score / quiz.length * 100) + '%').insertAfter('#question');
var result = Math.round(score / quiz.length * 100);
var g = document.createElement('img');
g.id = 'imgId';
$(g).css({
'height':'100px',
'width': '300px',
'margin-left':'40%'
}).insertAfter('#explanation');
if(result < 25){
$("#imgId").attr("src","https://ouijarrive.files.wordpress.com/2014/12/image-drole-simpsons.jpg");
}
else if(result < 50){
$("#imgId").attr("src","http://florence.apln-blog.fr/files/2014/12/5tqwzxik.gif");
}
else if(result < 100){
$("#imgId").attr("src","http://www.mondespersistants.com/images/screenshots/World_of_Warcraft-306426517.jpg");
}
else if(result == 100){
$("#imgId").attr("src","http://static.skynetblogs.be/media/42106/dyn007_original_351_345_gif__322f81be8c1209615f2355ad5619ac8b.gif");
}
}
function init() {
//add title
if (typeof quiztitle !== "undefined" && $.type(quiztitle) === "string") {
$(document.createElement('h1')).text(quiztitle).appendTo('#frame');
} else {
$(document.createElement('h1')).text("Quiz").appendTo('#frame');
}
//add pager and questions
if (typeof quiz !== "undefined" && $.type(quiz) === "array") {
//add pager
//$(document.createElement('p')).addClass('pager').attr('id', 'pager').text('Section: ' + quiz.length).appendTo('#frame');
//add first question
$(document.createElement('h2')).addClass('question').attr('id', 'question').text(quiz[0]['question']).appendTo('#frame');
//add image if present
if (quiz[0].hasOwnProperty('image') && quiz[0]['image'] != "") {
$(document.createElement('img')).addClass('question-image').attr('id', 'question-image').attr('src', quiz[0]['image']).attr('alt', htmlEncode(quiz[0]['question'])).appendTo('#frame');
}
//questions holder
$(document.createElement('ul')).attr('id', 'choice-block').appendTo('#frame');
//add choices
addChoices(quiz[0]['choices']);
$(document.createElement('p')).addClass('explanation').attr('id', 'explanation').html(' ').appendTo('#frame');
setupButtons();
}
}
init();
});
[/i] Modifié par samba (16 Mar 2015 - 11:01)