Check out the LimeSurvey source code on GitHub!

Afficher un choix de réponse selon une autre question

More
5 years 2 months ago #69999 by mador
Bonjour,

J'ai deux questions qui sont en fait dépendantes l’une de l’autre. La première demande dans quelle région administrative le répondant se trouve. La seconde question demande dans quel établissement il travaille. Ces deux questions sont des listes (menu déroulant). La solution que j'ai trouvée est de créer des questions différentes pour les établissements de chaque région.

Par exemple, si on répond la région "X" à la première question, une seconde question apparaît (liste avec menu déroulant), pour laquelle j'ai fait une condition, avec les établissements de cette région. Le problème c'est que j'ai donc 17 questions pour les établissements, car j'ai 17 régions administratives.

Est-ce qu'il y a un moyen plus simple, car le fichier des réponses sera un peu chaotique.

Je ne suis peut-être pas très claire dans mon explication, désolé.
Merci

Martin

Please Log in to join the conversation.

More
5 years 2 months ago #70025 by Nickko
Tu as trouvé la bonne solution, j'en ai pas de plus pratique à te proposer.

Ne t'en fais pas pour ton fichier de réponse, point de chaos en vue. J'utilise régulièrement ce genre de construction, ça ne pose pas de pb.

Nickko
Ergonome / Usability expert
The following user(s) said Thank You: mador

Please Log in to join the conversation.

More
5 years 2 months ago - 5 years 2 months ago #70069 by DenisChenu
Salut,

Il y a moyen de supprimer des options de réponses en fonctions d'un réponse précédente.

Ca doit pouvoir se faire en fonction des catégorie : dans le 2èeme champs, sur ue age suivante : tu créé tes établissement comme ceci : régionX|etablissementX
régionX étant la liste des région.
Tu utilise les INSERTANS (<a href=' www.docs.limesurvey.org/tiki-index.php?p...tions+for+LimeSurvey '>SGQA</a>) pour récupérer le nom de la région et tu supprime différente de cette région.

Un truc dans ce gout là:
var previousQuestionAnswer = "{INSERTANS:1000X1X41}";
var currentQuestionID = 42
 
$(document).ready(function() {  		
	// See if the answer for the previous question matches an answer in the current question
	// (other than 'No Answer')
	// If so, disable it.
	if (previousQuestionAnswer!='No Answer') {
		$("#question"+currentQuestionID+" select").children('optgroup').each(function(index, Element)
		{ 
			if ($(this).attr('label') != previousQuestionAnswer)  
				{ $(this).remove();}
			}    
		);}
}); 
Ya sans doute des problèmes de codes à revoir mais la base est là.

Denis

Assistance on LimeSurvey forum and LimeSurvey core development are on my free time.
I'm not a LimeSurvey GmbH member, professional service on demand (or search sondages pro).
Last Edit: 5 years 2 months ago by DenisChenu.

Please Log in to join the conversation.

Moderators: Nickko
Imprint                   Privacy policy         General Terms & Conditions         Revocation information and revocation form