Je veux construire une enquête qui a environ 20 questions. Toutes les questions sont dans la même page.Les options s'affichent étape par étape en fonction des choix des utilisateurs
La structure de l'ensemble du levé ressemble à la structure arborescente.
Initialement, une seule question est affichée dans la page.
Si l'utilisateur choisit l'option 1,2 de la question 1, l'enquête se termine. Si l'utilisateur choisit l'option 3,4,5 de la question 1, alors la question 2 apparaît.
si l'utilisateur choisit l'option 1,2,6 de la question 2, question 3 puis apparaît, sinon passez à la question 12.
si l'utilisateur choisit 1,2 la question 3, passez à la question 5, aller autrement question 4.
....
Il est assez gênant pour passer des questions (en utilisant display: none et display: block) par javascript quand il y a beaucoup de questions.
Quel est le moyen le plus simple dans cette situation?
Le code suivant est écrit selon la réponse de JacobM.
Un autre problème apparaît.
Je dois cacher et montrer une autre question si l'utilisateur choisit une autre option.
option 1 2a -> Afficher q12
option 4 de 2a -> show q3 et se cacher q12
option 1 q3 -> Afficher q4
option 1 2a -> Afficher Q12, cacher q3 et q4 < - - Cette situation est assez complexe
Que dois-je faire?
var responses = {
1 : {1:'end', 2:'end', 3:2, 4:2, 5:2, 6:2},
'2a': {1:12,2:12,3:3,4:3,5:3,6:12}
};
function handleResponse(question, key) {
option = question.selectedIndex+1;
var next = responses[key][option];
if (next=='end') return;
showQuestion(next);
}
function showQuestion(question){
$('tr[id^=trQ'+question+']').show();
}
Un autre problème apparaît. Je dois me cacher et montrer une autre question si l'utilisateur choisit une autre option. – Billy
Un exemple du problème est donné. – Billy
J'ai modifié ma réponse pour ajouter une option pour les réponses complexes. –