Answer options based on previous question

More
4 years 9 months ago #91796 by stuttgarter
stuttgarter replied the topic: Answer options based on previous question
Thanks a lot Tony :) .

Please Log in to join the conversation.

More
2 years 1 week ago #128545 by mmsurveys
mmsurveys replied the topic: Answer options based on previous question
Hello, I have a another question based on this situation.
How do I do this if the questions are not on the same page? (So If I display the questions page per page).
Question 1 lets the user choose the course
Question 2 lets the user select the teacher which is possible for the selected course?

Can you please give me a shot example?!
Many thanks in advance!

Please Log in to join the conversation.

More
2 years 6 days ago #128562 by tpartner
tpartner replied the topic: Answer options based on previous question
Assuming both questions are single-choice radios, remove the script from Q1 and add something like this to Q2:

<script type="text/javascript" charset="utf-8">
	$(document).ready(function(){
 
		// The Q2 options corresponding to the Q1 options		
		teacherLists = {
			C1 : 'T1,T3,T5',
			C2 : 'T1,T2,T3,T4',
			C3 : 'T2,T3,T4,T5',
			C4 : 'T1,T4,T6'
		};
 
		// Identify this question
		var thisQuestion = $('#question{QID}')
 
		// The checked option in Q1
		var q1Ans = '{Q1}';
 
		// Hide all of the teachers
		$('li[id^="javatbd"]', thisQuestion).hide();
 
		// Now show the appropriate ones
		$(teacherLists[q1Ans].split(',')).each(function(i){
			$('input.radio[id$="'+{QID}+this+'"]').closest('li').show();
		});
 
		// Uncheck all hidden radios (in case page has been seen before)
		$('li[id^="javatbd"]:hidden input.radio', thisQuestion).prop('checked', false);
	});
</script>

Sample survey attached:

File Attachment:

File Name: limesurvey...2(1).lss
File Size:16 KB

Cheers,
Tony Partner
Solutions, code and workarounds presented in these forums are given without any warranty, implied or otherwise.
Attachments:

Please Log in to join the conversation.

More
2 years 6 days ago #128563 by DenisChenu
DenisChenu replied the topic: Answer options based on previous question
Hi,

I use another method, using an "multiple choice" and check it acording to selection : demonstration.sondages.pro/676785#

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).
An error happen ? Before make a new topic : remind the Debug mode .

Please Log in to join the conversation.

More
2 years 6 days ago #128566 by mmsurveys
mmsurveys replied the topic: Answer options based on previous question
Thank you very much Tony!!! This should do the job!

Please Log in to join the conversation.

More
2 years 6 days ago #128567 by mmsurveys
mmsurveys replied the topic: Answer options based on previous question
Hey Denis, thank you for the suggestion. unfortunately, I'm a bit confused due to my lack of speaking French :/
Tonys version should work. If not, I'll come again and try the translator or just ask ;)
Many thanks to you!

Please Log in to join the conversation.

More
2 years 6 days ago #128572 by DenisChenu
DenisChenu replied the topic: Answer options based on previous question
Hi, Tnoy solution was perfect :) and it work. Just to show alternatives :)

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).
An error happen ? Before make a new topic : remind the Debug mode .

Please Log in to join the conversation.

More
9 months 3 weeks ago #147949 by Sabrina2017
Sabrina2017 replied the topic: Answer options based on previous question
Hi,

I tried this solution with Version 2.06 it work perfect, but not work on Version 2.57.1+161205, please how i need to change ?
<script type="text/javascript" charset="utf-8">
$(document).ready(function(){

// The Q2 options corresponding to the Q1 options
teacherLists = {
C1 : 'T1,T3,T5',
C2 : 'T1,T2,T3,T4',
C3 : 'T2,T3,T4,T5',
C4 : 'T1,T4,T6'
};

// Identify this question
var thisQuestion = $('#question{QID}')

// The checked option in Q1
var q1Ans = '{Q1}';

// Hide all of the teachers
$('li[id^="javatbd"]', thisQuestion).hide();

// Now show the appropriate ones
$(teacherLists[q1Ans].split(',')).each(function(i){
$('input.radio[id$="'+{QID}+this+'"]').closest('li').show();
});

// Uncheck all hidden radios (in case page has been seen before)
$('li[id^="javatbd"]:hidden input.radio', thisQuestion).prop('checked', false);
});
</script>
Thanks

Please Log in to join the conversation.

More
9 months 3 weeks ago #147959 by tpartner
tpartner replied the topic: Answer options based on previous question
This will work in 2.5x:

<script type="text/javascript" charset="utf-8">
	$(document).ready(function(){
 
		// The Q2 options corresponding to the Q1 options		
		teacherLists = {
			C1 : 'T1,T3,T5',
			C2 : 'T1,T2,T3,T4',
			C3 : 'T2,T3,T4,T5',
			C4 : 'T1,T4,T6'
		};
 
		// Identify this question
		var thisQuestion = $('#question{QID}')
 
		// The checked option in Q1
		var q1Ans = '{Q1}';
 
		// Hide all of the teachers
		$('.answer-item', thisQuestion).hide();
 
		// Now show the appropriate ones
		$(teacherLists[q1Ans].split(',')).each(function(i){
			$('input.radio[id$="'+{QID}+this+'"]').closest('.answer-item').show();
		});
 
		// Uncheck all hidden radios (in case page has been seen before)
		$('.answer-item:hidden input.radio', thisQuestion).prop('checked', false);
	});
</script>

Sample survey attached:

File Attachment:

File Name: limesurvey...1-30.lss
File Size:16 KB

Cheers,
Tony Partner
Solutions, code and workarounds presented in these forums are given without any warranty, implied or otherwise.
Attachments:
The following user(s) said Thank You: Sabrina2017

Please Log in to join the conversation.

More
2 months 6 days ago #158678 by saifshaikh
saifshaikh replied the topic: Answer options based on previous question
Hi Tony,

Can the above soloution work in ver 2.6 with both the question been on the same page.

Please Log in to join the conversation.

More
2 weeks 3 days ago - 2 weeks 3 days ago #160316 by AdinaNica1
AdinaNica1 replied the topic: Answer options based on previous question
Hi!

I have a similar situation. I have tried to use the script that you shared and it didn't work (once you tick a certain answer in q1 it doesn't modify the options in Q2). I also tried to use your test survey, and it is the same result, no change. Is there anything else I should have done? Is this working only for certain versions?My version is 2.67.3+170728.

Many many thanks!
Last Edit: 2 weeks 3 days ago by AdinaNica1.

Please Log in to join the conversation.

More
2 weeks 3 days ago #160345 by tpartner
tpartner replied the topic: Answer options based on previous question
This script will work in 2.7.x:

<script type="text/javascript" charset="utf-8">
	$(document).ready(function(){
 
		// The Q2 options corresponding to the Q1 options		
		teacherLists = {
			C1 : 'T1,T3,T5',
			C2 : 'T1,T2,T3,T4',
			C3 : 'T2,T3,T4,T5',
			C4 : 'T1,T4,T6'
		};
 
		// Identify this question
		var thisQuestion = $('#question{QID}')
 
		// The checked option in Q1
		var q1Ans = '{Q1}';
 
		// Hide all of the teachers
		$('.answer-item', thisQuestion).hide();
 
		// Now show the appropriate ones
		$(teacherLists[q1Ans].split(',')).each(function(i){
			$('.answer-item[id$="'+{QID}+this+'"]').show();
		});
 
		// Uncheck all hidden radios (in case page has been seen before)
		$('.answer-item:hidden input.radio', thisQuestion).prop('checked', false);
	});
</script>

Sample survey attached:

File Attachment:

File Name: limesurvey...1-06.lss
File Size:16 KB

Cheers,
Tony Partner
Solutions, code and workarounds presented in these forums are given without any warranty, implied or otherwise.
Attachments:
The following user(s) said Thank You: AdinaNica1

Please Log in to join the conversation.

More
2 weeks 2 days ago - 2 weeks 2 days ago #160348 by AdinaNica1
AdinaNica1 replied the topic: Answer options based on previous question
Thank you so much! I uploaded the Demo and, when I click C1 in the first question, here is what it shows in the second page. Please see the attachment with the screenshot! In the meantime I have upgraded to 2.72 version and there is the same result :(
Is there anything I should do?
Adina
Attachments:
Last Edit: 2 weeks 2 days ago by AdinaNica1.

Please Log in to join the conversation.

More
2 weeks 2 days ago #160358 by Joffm
Joffm replied the topic: Answer options based on previous question
Hello,
in this case - filter a single punch question on a single punch question - I have a different approach.
To be honest: I prefer out of the box solutions just because of my lack of JS-knowledge.
Okay, Tony's script here is short, straight forward and easy to understand.

Let me explain:
Between the two single questions (here: course Q1 and teacher Q2) I insert an equation and a multiple question M1 (both hidden).
The multiple question with exactly the same answer options and codes as the second single ("Teachers") is used to be the matrix filter.

By the equation I preset the multiple question: e.g.
{M1_T1=if((Q1=="C1") OR (Q1=="C3"),"Y","")}

{M1_T2=if((Q1=="C2") OR (Q1=="C4") OR (Q1=="C5"),"Y","")}
...

And the matrix filter of Q2 is M1.

Best reqards
Joffm

File Attachment:

File Name: limesurvey...1532.lss
File Size:21 KB
Attachments:

Please Log in to join the conversation.

More
2 weeks 2 days ago #160372 by AdinaNica1
AdinaNica1 replied the topic: Answer options based on previous question
Super! The Demo is working (and this didn't happen to the previous demos)!
Can I use this script if the second question is multiple (I need to include a list of brands here)?
Adina

Please Log in to join the conversation.

Start now!

Just create your account and start using Limesurvey today.

Register now
Join our Newsletter!