Pick one item out of multiple items in a survey page


Author
Message
Jonathan Scheeff
Jonathan Scheeff
Partner Member (781 reputation)Partner Member (781 reputation)Partner Member (781 reputation)Partner Member (781 reputation)Partner Member (781 reputation)Partner Member (781 reputation)Partner Member (781 reputation)Partner Member (781 reputation)Partner Member (781 reputation)
Group: Forum Members
Posts: 3, Visits: 4
Hi guys!

I am recently trying to generate a multiple choice survey for a study (using 5 pictures at a time where subjects should pick one of these). I altered the code from a survey example (the one with the baby cats and puppies).

A problem I can't solve myself is that I don't know how to tell Inqisit that they only can pick one option and not two ore more. Is the problem in the "surveypage" command? Would be great if you could help me out :-)

Cheers

Jonathan

Here is the code:

<expressions>
/ bagcount = checkboxes.aktetas40.checked.1 + checkboxes.damestas40.checked.1 + checkboxes.rugzak40.checked.1 + checkboxes.stoftas40.checked.1 + checkboxes.buiktas40.checked.1
</expressions>

<item selectedbags>
</item>


<checkboxes aktetas40>
/ options = ("1")
/ optionvalues = ("aktetas40.gif")
/ position = (25, 34)
/ required = false
</checkboxes>

<checkboxes damestas40>
/ options = ("2")
/ optionvalues = ("damestas40.gif")
/ position = (50, 34)
/ required = false
</checkboxes>

<checkboxes rugzak40>
/ options = ("3")
/ optionvalues = ("rugzak40.gif")
/ position = (75, 34)
/ required = false
</checkboxes>

<checkboxes stoftas40>
/ options = ("4")
/ optionvalues = ("stoftas40.gif")
/ position = (25, 59)
/ required = false
</checkboxes>

<checkboxes buiktas40>
/ options = ("5")
/ optionvalues = ("buiktas40.gif")
/ position = (50, 59)
/ required = false
</checkboxes>

<picture aktetas40>
/ items = bagoptions
/ position = (25, 23)
/ size = (20%, 20%)
/ select = 1
</picture>

<picture damestas40>
/ items = bagoptions
/ position = (50, 23)
/ size = (20%, 20%)
/ select = 2
</picture>

<picture rugzak40>
/ items = bagoptions
/ position = (75, 23)
/ size = (20%, 20%)
/ select = 3
</picture>

<picture stoftas40>
/ items = bagoptions
/ position = (25, 48)
/ size = (20%, 20%)
/ select = 4
</picture>

<picture buiktas40>
/ items = bagoptions
/ position = (50, 48)
/ size = (20%, 20%)
/ select = 5
</picture>

<item bagoptions>
/1 = "aktetas40.gif"
/2 = "damestas40.gif"
/3 = "rugzak40.gif"
/4 = "stoftas40.gif"
/5 = "buiktas40.gif"
</item>


<surveypage bagpage>
/ caption = "Je zal nu 1 tas stelen. Kies zorgvuldig 1 tas uit en steel ze door er op te klikken."
/ questions = [1=aktetas40; 2=damestas40; 3=rugzak40; 4=stoftas40; 5=buiktas40]
/ stimulusframes = [1=aktetas40, damestas40, rugzak40, stoftas40, buiktas40]
/ branch = [if (expressions.bagcount != 1) surveypage.bagpage; ]
/recorddata = true
</surveypage>

<survey bagselectionphase>
/ pages = [1=noreplace(bagpage)]
/ fontstyle = ("Verdana", -27, false, false, false, false, 5, 0)
/ itemfontstyle = ("Verdana", -16, false, false, false, false, 5, 0)
/ showpagenumbers = false
/ onblockend = [ if( checkboxes.aktetas40.checked.1 == true) item.selectedbags.item = checkboxes.aktetas40.optionvalue.1 ]
/ onblockend = [ if( checkboxes.damestas40.checked.1 == true) item.selectedbags.item = checkboxes.damestas40.optionvalue.1 ]
/ onblockend = [ if( checkboxes.rugzak40.checked.1 == true) item.selectedbags.item = checkboxes.rugzak40.optionvalue.1 ]
/ onblockend = [ if( checkboxes.stoftas40.checked.1 == true) item.selectedbags.item = checkboxes.stoftas40.optionvalue.1 ]
/ onblockend = [ if( checkboxes.buiktas40.checked.1 == true) item.selectedbags.item = checkboxes.buiktas40.optionvalue.1 ]
</survey>

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
> A problem I can't solve myself is that I don't know how to tell Inqisit that they only can pick one option and not two ore more.
Your script already does that (as does the original). You count the number of checked elements here

</expressions>
/ bagcount = checkboxes.aktetas40.checked.1 + checkboxes.damestas40.checked.1 + checkboxes.rugzak40.checked.1 + checkboxes.stoftas40.checked.1 + checkboxes.buiktas40.checked.1
</expressions>

and run the page again if that count is not equal to one:

<surveypage bagpage>
/ caption = "Je zal nu 1 tas stelen. Kies zorgvuldig 1 tas uit en steel ze door er op te klikken."
/ questions = [1=aktetas40; 2=damestas40; 3=rugzak40; 4=stoftas40; 5=buiktas40]
/ stimulusframes = [1=aktetas40, damestas40, rugzak40, stoftas40, buiktas40]
/ branch = [if (expressions.bagcount != 1) surveypage.bagpage; ]
/recorddata = true
</surveypage>

Thus I'm not sure what the actual question or problem is...

Edited 10 Years Ago by Dave
Jonathan Scheeff
Jonathan Scheeff
Partner Member (781 reputation)Partner Member (781 reputation)Partner Member (781 reputation)Partner Member (781 reputation)Partner Member (781 reputation)Partner Member (781 reputation)Partner Member (781 reputation)Partner Member (781 reputation)Partner Member (781 reputation)
Group: Forum Members
Posts: 3, Visits: 4
Hi Dave!

Thanks for your reply. You are right, it works, but it would be smoother if subjects could always only pick one option. In this setting it is like you described: They can pick two options but return to the page until they picked one. So maybe it is not a problem and more a disfigurement. Do you have an idea how to do better?

Thanks in advance!

Jonathan

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
> Do you have an idea how to do better?

Yes. Don't use a <surveypage> w/ <checkboxes> in this case. Simply set up a standard <trial> element that displays the pictures, have them click on the one they want to select:

<trial bagtrial>
/ stimulusframes = [1=aktetas40, damestas40, rugzak40, stoftas40, buiktas40, ...]
/ inputdevice = mouse
/ validresponse = (aktetas40, damestas40, rugzak40, stoftas40, buiktas40)
/ ontrialend = [ if (trial.bagtrial.response == "aktetas40") item.selectedbags.item = picture.aktetas40.currentitem]
....
/ ontrialend = [ if (trial.bagtrial.response == "buiktas40") item.selectedbags.item = picture.buiktas40.currentitem]
</trial>
Edited 10 Years Ago by Dave
Jonathan Scheeff
Jonathan Scheeff
Partner Member (781 reputation)Partner Member (781 reputation)Partner Member (781 reputation)Partner Member (781 reputation)Partner Member (781 reputation)Partner Member (781 reputation)Partner Member (781 reputation)Partner Member (781 reputation)Partner Member (781 reputation)
Group: Forum Members
Posts: 3, Visits: 4
Hi Dave!

Works perfect, thank you very much :-)

Cheers

GO

Merge Selected

Merge into selected topic...



Merge into merge target...



Merge into a specific topic ID...




Reading This Topic

Explore
Messages
Mentions
Search