- Posts: 30
- Thank you received: 0
Welcome to the LimeSurvey Community Forum
Ask the community, share ideas, and connect with other LimeSurvey users!
Randomly show 9 out of 27 question groups in Version 3.22
- LisaTW
- Topic Author
- Offline
- Junior Member
Less
More
3 years 2 months ago #212404
by LisaTW
Randomly show 9 out of 27 question groups in Version 3.22 was created by LisaTW
Hi there,
I try to select randomly 9 out of 27 question groups. I only found this solution here manual.limesurvey.org/Workarounds:_Surve...of_Y_question_groups
But this was based on Version 2.0 and select 4 out of 8, therefore I cannot follow this solution way to finish my design.
And I'd like to design specific answers (for example, if you choose different answers, the answer will lead you to different questions; or if you choose "yes", the survey will go on, if you choose "no", it will end), I don't know how to make this come true.
How to implement these in Version 3.22?
Great thanks for your help and time.
I try to select randomly 9 out of 27 question groups. I only found this solution here manual.limesurvey.org/Workarounds:_Surve...of_Y_question_groups
But this was based on Version 2.0 and select 4 out of 8, therefore I cannot follow this solution way to finish my design.
And I'd like to design specific answers (for example, if you choose different answers, the answer will lead you to different questions; or if you choose "yes", the survey will go on, if you choose "no", it will end), I don't know how to make this come true.
How to implement these in Version 3.22?
Great thanks for your help and time.
The topic has been locked.
- Joffm
- Away
- LimeSurvey Community Team
Less
More
- Posts: 13060
- Thank you received: 4021
3 years 2 months ago #212411
by Joffm
Volunteers are not paid.
Not because they are worthless, but because they are priceless
Replied by Joffm on topic Randomly show 9 out of 27 question groups in Version 3.22
Hi,
to select 9 out of 27 groups you may use this:
1. Create a question of type "short text" in a group before your "random groups" (let's call it "random")
2. Enter this javascript in source code mode into the question text.
If you comment this line
// $('#question{QID}').hide();
you will see something like this
Now you select your groups by entering the relevance equations:
Random Group 1: strpos(random,"01")>0
Random Group 2: strpos(random,"02")>0
Random Group 3: strpos(random,"03")>0
...
There are other option by using group properties like ".gseq"
".gseq" gives you the sequential number of the displayed groups, starting with "0".
So you may enter a relevance equation into the groups like "QCode.gseq<X", with "QCode" the code of the first question in this group.
Here you have to adapt the value of X.
Your next questions are a bit unspecified.
Joffm
to select 9 out of 27 groups you may use this:
1. Create a question of type "short text" in a group before your "random groups" (let's call it "random")
2. Enter this javascript in source code mode into the question text.
Code:
<script type="text/javascript" charset="utf-8"> function shuffle(array) { var currentIndex = array.length, temporaryValue, randomIndex; // While there remain elements to shuffle... while (0 !== currentIndex) { // Pick a remaining element... randomIndex = Math.floor(Math.random() * currentIndex); currentIndex -= 1; // And swap it with the current element. temporaryValue = array[currentIndex]; array[currentIndex] = array[randomIndex]; array[randomIndex] = temporaryValue; } return array; } $(document).on('ready pjax:scriptcomplete',function(){ // Fill the array var arr = []; for (var i = 1; i < 28; i++) { arr.push(("00" + i).slice(-2)); } arr = shuffle(arr); arr = arr.slice(0,9).join(','); $('#question{QID} input[type="text"]').val("#,"+arr); $('#question{QID}').hide(); }); </script>
// $('#question{QID}').hide();
you will see something like this
Now you select your groups by entering the relevance equations:
Random Group 1: strpos(random,"01")>0
Random Group 2: strpos(random,"02")>0
Random Group 3: strpos(random,"03")>0
...
There are other option by using group properties like ".gseq"
".gseq" gives you the sequential number of the displayed groups, starting with "0".
So you may enter a relevance equation into the groups like "QCode.gseq<X", with "QCode" the code of the first question in this group.
Here you have to adapt the value of X.
Your next questions are a bit unspecified.
This you do by relevance equation in the question, like "Q1==4" (Question is displayed if the code in question Q1 was "4".if you choose different answers, the answer will lead you to different questions
Here you use a quota with limit "0", because you want to have "0" participants, who answered this question with "no"or if you choose "yes", the survey will go on, if you choose "no", it will end
Joffm
Volunteers are not paid.
Not because they are worthless, but because they are priceless
The topic has been locked.