Hi,
are you now able to use javascript?
If not, of course the names are not showing.
Now here's my sample without using javascript
Because I only show 4 out of 10 names you have to
extend the survey to your 33 names
change these two lines in "eqNames"
{selNames_11='123456789A'} - 10 Elements
to
{selNames_11='123456789ABCDEFGHIJKLMNOPQRSTUVWX'} - 33 Elements
and
{selNames_999=join('#',selNames_13,selNames_23,selNames_33,selNames_43)} - 4 Elements
to
{selNames_999=join('#',selNames_13,selNames_23,selNames_33,selNames_43,selNames_53,selNames_63,selNames_73,selNames_83,selNames_93,selNames_103,selNames_113)} - 11 elements
In my opinion this calculation is rather straightforward and easy to understand.
Question "selNames" is a question of type "multiple short text" and is used as a container.
To select one element we need three equations; therefore the subquestions are coded 11, 12, 13, 21, 22, 23, 31, 32, ...
Code:
{selNames_11='123456789ABCDEFGHIJKLMNOPQRSTUVWX'}
{selNames_12=if(is_empty(selNames_12),rand(1,strlen(selNames_11)),selNames_12)}
{selNames_13=substr(selNames_11,selNames_12-1,1)}
{selNames_21=str_replace(selNames_13,'',selNames_11)}
{selNames_22=if(is_empty(selNames_22),rand(1,strlen(selNames_21)),selNames_22)}
{selNames_23=substr(selNames_21,selNames_22-1,1)}
{selNames_31=str_replace(selNames_23,'',selNames_21)}
{selNames_32=if(is_empty(selNames_32),rand(1,strlen(selNames_31)),selNames_32)}
{selNames_33=substr(selNames_31,selNames_32-1,1)}
{selNames_41=str_replace(selNames_33,'',selNames_31)}
{selNames_42=if(is_empty(selNames_42),rand(1,strlen(selNames_41)),selNames_42)}
{selNames_43=substr(selNames_41,selNames_42-1,1)}
{selNames_51=str_replace(selNames_43,'',selNames_41)}
{selNames_52=if(is_empty(selNames_52),rand(1,strlen(selNames_51)),selNames_52)}
{selNames_53=substr(selNames_51,selNames_52-1,1)}
{selNames_61=str_replace(selNames_53,'',selNames_51)}
{selNames_62=if(is_empty(selNames_62),rand(1,strlen(selNames_61)),selNames_62)}
{selNames_63=substr(selNames_61,selNames_62-1,1)}
{selNames_71=str_replace(selNames_63,'',selNames_61)}
{selNames_72=if(is_empty(selNames_72),rand(1,strlen(selNames_71)),selNames_72)}
{selNames_73=substr(selNames_71,selNames_72-1,1)}
{selNames_81=str_replace(selNames_73,'',selNames_71)}
{selNames_82=if(is_empty(selNames_82),rand(1,strlen(selNames_81)),selNames_82)}
{selNames_83=substr(selNames_81,selNames_82-1,1)}
{selNames_91=str_replace(selNames_83,'',selNames_81)}
{selNames_92=if(is_empty(selNames_92),rand(1,strlen(selNames_91)),selNames_92)}
{selNames_93=substr(selNames_91,selNames_92-1,1)}
{selNames_101=str_replace(selNames_93,'',selNames_91)}
{selNames_102=if(is_empty(selNames_102),rand(1,strlen(selNames_101)),selNames_102)}
{selNames_103=substr(selNames_101,selNames_102-1,1)}
{selNames_111=str_replace(selNames_103,'',selNames_101)}
{selNames_112=if(is_empty(selNames_112),rand(1,strlen(selNames_111)),selNames_112)}
{selNames_113=substr(selNames_111,selNames_112-1,1)}
{selNames_999=join('#',selNames_13,selNames_23,selNames_33,selNames_43,selNames_53,selNames_63,selNames_73,selNames_83,selNames_93,selNames_103,selNames_113)}
11. we fill the first base with 33 elements
12. We create a random number from 1 to the length of the string in 11
13. We put the element with index of this random number into 13
21. We remove (str_replace) this element from 11 and put the rest into 21
22. We create a random number from 1 to the length of the string in 21
23. We put the element with index of this random number into 23
31. We remove (str_replace) this element from 21 and put the rest into 31
32. We create a random number from 1 to the length of the string in 31
and so on.
In the last equation we join all these elements to a final string
This is used to display the name questions. function "strpos(haystack,needle)"
The condition is "strpos(selNames_999,"1")>0"
Meaning: If the index of "1" in selNames is greater than 0, it is existing.
Because the result "0" means "not found", but the functions returns 0 for the first element, there is the '#' at first place. Now the first valid element starts at position 1.
If the string contains "1", the 1. name is displayed.
If the string contains "2", the 2. name is displayed.
If the string contains "P", the 25. name is displayed.
and so on.
If you want to display the items in each behaviour group as well, you have to add a randomization group name to each question.
In the last behaviour group I used an array - just for demonstration.
And at last:
All questions are "not mandatory" - easier to test.
Set it as you want to.
Joffm