checkboxes.checkboxname.selectedcount


Author
Message
Yuxi
Yuxi
Partner Member (699 reputation)Partner Member (699 reputation)Partner Member (699 reputation)Partner Member (699 reputation)Partner Member (699 reputation)Partner Member (699 reputation)Partner Member (699 reputation)Partner Member (699 reputation)Partner Member (699 reputation)
Group: Forum Members
Posts: 5, Visits: 29
Dear all,

I met a problem with checkboxes.checkboxname.selectedcount.
There are 18 checkboxes in the task, each with one option. I asked people to select 6 checkboxes from the 18. Then I want to get the values of the selected 6 options. I wrote a script as below. However, logic expression values.checkboxselect == "1" is always wrong in the 6 trials below. 
Does anyone know why? Any help or information will be appreciated! 

<item Newoptions>
/ 1 = "<% values.option1        
             
                 %>"
/ 2 ="<% values.option2        
             
                 %>"
/ 3 = "<% values.option3        
             
                 %>"
/ 4 = "<% values.option4        
             
                 %>"
/ 5 = "<% values.option5        
             
                 %>"
/ 6 = "<% values.option6        
             
                 %>"
/ 7 = "<% values.option7        
             
                 %>"
/ 8 = "<% values.option8        
             
                 %>"
/ 9 = "<% values.option9        
             
                 %>"
/ 10 = "<% values.option10        
             
                 %>"
/ 11 = "<% values.option11        
             
                 %>"
/ 12 = "<% values.option12        
             
                 %>"
/ 13 = "<% values.option13        
             
                 %>"
/ 14 = "<% values.option14        
             
                 %>"
/ 15 = "<% values.option15        
             
                 %>"
/ 16 = "<% values.option16        
             
                 %>"
/ 17 = "<% values.option17        
             
                 %>"
/ 18 = "<% values.option18        
             
                 %>"
</item>
<item selectedcount>
/ 1 = "<%checkboxes.option1.selectedcount%>"
/ 2 = "<%checkboxes.option2.selectedcount%>"
/ 3 = "<%checkboxes.option3.selectedcount%>"
/ 4 = "<%checkboxes.option4.selectedcount%>"
/ 5 = "<%checkboxes.option5.selectedcount%>"
/ 6 = "<%checkboxes.option6.selectedcount%>"
/ 7 = "<%checkboxes.option7.selectedcount%>"
/ 8 = "<%checkboxes.option8.selectedcount%>"
/ 9 = "<%checkboxes.option9.selectedcount%>"
/ 10 = "<%checkboxes.option10.selectedcount%>"
/ 11 = "<%checkboxes.option11.selectedcount%>"
/ 12 = "<%checkboxes.option12.selectedcount%>"
/ 13 = "<%checkboxes.option13.selectedcount%>"
/ 14 = "<%checkboxes.option14.selectedcount%>"
/ 15 = "<%checkboxes.option15.selectedcount%>"
/ 16 = "<%checkboxes.option16.selectedcount%>"
/ 17 = "<%checkboxes.option17.selectedcount%>"
/ 18 = "<%checkboxes.option18.selectedcount%>"
</item>

<trial Newoption1>
/ ontrialbegin = [values.newoptionA = getitem(item.Newoptions,values.shuffleA1)]
/ ontrialbegin = [values.checkboxselect = getitem(item.selectedcount,values.shuffleA1)]
/ ontrialbegin = [if (values.checkboxselect == "1" ) values.newoption1 = values.newoptionA]
/ ontrialend = [values.shuffleA1 = values.shuffleA1 + 1]
/ branch = [if (values.checkboxselect == "1" ) trial.Newoption2 else trial.Newoption1]
/ timeout =1
</trial>

<trial Newoption2>
/ ontrialbegin = [values.newoptionB = getitem(item.Newoptions,values.shuffleA1)]
/ ontrialbegin = [values.checkboxselect = getitem(item.selectedcount,values.shuffleA1)]
/ ontrialbegin = [if (values.checkboxselect== "1" ) values.newoption2=values.newoptionB]
/ ontrialend = [values.shuffleA1 = values.shuffleA1 + 1]
/ branch = [if (values.checkboxselect== "1" ) trial.Newoption3 else trial.Newoption2]
/ timeout = 1
</trial>

<trial Newoption3>
/ ontrialbegin = [values.newoptionC = getitem(item.Newoptions,values.shuffleA1)]
/ ontrialbegin = [values.checkboxselect = getitem(item.selectedcount,values.shuffleA1)]
/ ontrialbegin = [if (values.checkboxselect== "1" ) values.newoption3=values.newoptionC]
/ ontrialend = [values.shuffleA1 = values.shuffleA1 + 1]
/ branch = [if (values.checkboxselect== "1" ) trial.Newoption4 else trial.Newoption3]
/ timeout = 1
</trial>

<trial Newoption4>
/ ontrialbegin = [values.newoptionD = getitem(item.Newoptions,values.shuffleA1)]
/ ontrialbegin = [values.checkboxselect= getitem(item.selectedcount,values.shuffleA1)]
/ ontrialbegin = [if (values.checkboxselect== "1" ) values.newoption4=values.newoptionD]
/ ontrialend = [values.shuffleA1 = values.shuffleA1 + 1]
/ branch = [if (values.checkboxselect== "1" ) trial.Newoption5 else trial.Newoption4]
/ timeout = 1
</trial>


<trial Newoption5>
/ ontrialbegin = [values.newoptionE = getitem(item.Newoptions,values.shuffleA1)]
/ ontrialbegin = [values.checkboxselect = getitem(item.selectedcount,values.shuffleA1)]
/ ontrialbegin = [if (values.checkboxselect== "1" ) values.newoption5=values.newoptionE]
/ ontrialend = [values.shuffleA1 = values.shuffleA1 + 1]
/ branch = [if (values.checkboxselect== "1" ) trial.Newoption6 else trial.Newoption5]
/ timeout = 1
</trial>

<trial Newoption6>
/ ontrialbegin = [values.newoptionF = getitem(item.Newoptions,values.shuffleA1)]
/ ontrialbegin = [values.checkboxselect = getitem(item.selectedcount,values.shuffleA1)]
/ ontrialbegin = [if (values.checkboxselect== "1" ) values.newoption6=values.newoptionF]
/ ontrialend = [values.shuffleA1 = values.shuffleA1 + 1]
/ branch = [if (values.checkboxselect== "1" ) block.selectionchoosing else trial.Newoption6]
/ timeout = 1
</trial>

Dave
Dave
Supreme Being (1M reputation)Supreme Being (1M reputation)Supreme Being (1M reputation)Supreme Being (1M reputation)Supreme Being (1M reputation)Supreme Being (1M reputation)Supreme Being (1M reputation)Supreme Being (1M reputation)Supreme Being (1M reputation)
Group: Administrators
Posts: 12K, Visits: 98K
The problem is that <item> elements do *not* resolve expressions, which is what

<item selectedcount>
/ 1 = "<%checkboxes.option1.selectedcount%>"
...
</item>

are. It's the *stimulus* element -- <text>, <picture>, etc. -- that uses the <item> element that's responsible for resolving expressions.

Hence, in your case values.checkboxselect will be equal to e.g. the *literal* string "<%checkboxes.option1.selectedcount%>", not "1" or "0".

Run the below example to see what I mean:

<values>
/ item_element = ""
/ text_element = ""
</values>

<checkboxes a>
/ options = ("a")
/ required = false
</checkboxes>

<surveypage a>
/ questions = [1=a]
</surveypage>

<text b>
/ items = b
</text>

<item b>
/ 1 = "<%checkboxes.a.selectedcount%>"
</item>

<trial b>
/ ontrialbegin = [values.item_element = getitem(item.b, 1);
    values.text_element = getitem(text.b, 1); ]

/ stimulusframes = [1=mytext]
/ validresponse = (57)
</trial>

<text mytext>
/ items = ("Press CTRL+D and look at the two values")
</text>

<block myblock>
/ trials = [1 = sequence(a,b)]
</block>

The fix is to set up a <text> element referencing the item element as in the example above.

Yuxi
Yuxi
Partner Member (699 reputation)Partner Member (699 reputation)Partner Member (699 reputation)Partner Member (699 reputation)Partner Member (699 reputation)Partner Member (699 reputation)Partner Member (699 reputation)Partner Member (699 reputation)Partner Member (699 reputation)
Group: Forum Members
Posts: 5, Visits: 29
Dear there,

Thank you so much! Your answer is very clear! Problem solved!

All the bests!
GO

Merge Selected

Merge into selected topic...



Merge into merge target...



Merge into a specific topic ID...




Reading This Topic

Explore
Messages
Mentions
Search