﻿<?xml version="1.0" encoding="UTF-8"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/"><channel><title>Millisecond Forums » Millisecond Forums » Inquisit 6  » creating a back button for randomized trials, not surveypage</title><generator>InstantForum 2017-1 Final</generator><description>Millisecond Forums</description><link>https://forums.millisecond.com/</link><webMaster>Millisecond Forums</webMaster><lastBuildDate>Wed, 09 Sep 2026 13:41:12 GMT</lastBuildDate><ttl>20</ttl><item><title>creating a back button for randomized trials, not surveypage</title><link>https://forums.millisecond.com/Topic32082.aspx</link><description>Hi--&amp;nbsp;&lt;br/&gt;I'm trying to add a back button for an experiment (NOT a survey page) in order to go back to a previous trial. I generally know how to use conditional logic -- the only problem is that the trials are randomized, so it's not entirely clear which trial to display. The relevant part of the experiment is set up as follows:&lt;br/&gt;&lt;br/&gt;3 randomized trials:&lt;br/&gt;&amp;lt;block similar&amp;gt;&lt;br/&gt;/trials = [1-3 = noreplace(6_by_2, 10_by_2, 12_by_2)]&lt;br/&gt;&amp;lt;/block&amp;gt;&lt;br/&gt;&lt;br/&gt;I'd like to add conditional branching to each of these trials (6_by_2, 10_by_2, 12_by_2) if the back button is pressed, but I don't know how to do this given that *which* trial is the previous trial will depend on how randomization works. Thanks in advance for any help!&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;</description><pubDate>Thu, 12 Aug 2021 19:58:09 GMT</pubDate><dc:creator>nc</dc:creator></item><item><title>RE: creating a back button for randomized trials, not surveypage</title><link>https://forums.millisecond.com/Topic32084.aspx</link><description>&lt;blockquote data-id="32083" class="if-quote-wrapper" unselectable="on" data-guid="1628798192591" id="if_insertedNode_1628798191610" contenteditable="false"&gt;&lt;a class="quote-para" unselectable="on" style="display: none;" href="#" data-id="32083" title="Move Cursor Below" contenteditable="false"&gt;&lt;span unselectable="on"&gt;+&lt;/span&gt;&lt;/a&gt;&lt;a class="quote-delete" unselectable="on" style="display: none;" href="#" data-id="32083" title="Delete Quote" contenteditable="false"&gt;&lt;span unselectable="on"&gt;x&lt;/span&gt;&lt;/a&gt;&lt;span unselectable="on" class="quote-markup"&gt;[quote]&lt;/span&gt;&lt;div unselectable="on" class="if-quote-header" contenteditable="false"&gt;&lt;div unselectable="on" class="if-quote-toggle-wrapper"&gt;&lt;a class="if-quote-toggle quote-link" href="#" data-id="32083" title=" "&gt;&amp;nbsp;&lt;/a&gt;&lt;/div&gt;&lt;span unselectable="on" class="quote-markup"&gt;[b]&lt;/span&gt;Dave - 8/12/2021&lt;span unselectable="on" class="quote-markup"&gt;[/b]&lt;/span&gt;&lt;/div&gt;&lt;div class="if-quote-message if-quote-message-32083"&gt;&lt;div class="if-quote-message-margin" contenteditable="true"&gt;&lt;blockquote data-id="32082" class="if-quote-wrapper" unselectable="on" data-guid="1628798192591" id="if_insertedNode_1628788185264" contenteditable="false"&gt;&lt;a class="quote-para" unselectable="on" style="display: none;" href="#" data-id="32082" title="Move Cursor Below" contenteditable="false"&gt;&lt;span unselectable="on"&gt;+&lt;/span&gt;&lt;/a&gt;&lt;a class="quote-delete" unselectable="on" style="display: none;" href="#" data-id="32082" title="Delete Quote" contenteditable="false"&gt;&lt;span unselectable="on"&gt;x&lt;/span&gt;&lt;/a&gt;&lt;span unselectable="on" class="quote-markup"&gt;[quote]&lt;/span&gt;&lt;div unselectable="on" class="if-quote-header" contenteditable="false"&gt;&lt;div unselectable="on" class="if-quote-toggle-wrapper"&gt;&lt;a class="if-quote-toggle quote-link" href="#" data-id="32082" title=" "&gt;&amp;nbsp;&lt;/a&gt;&lt;/div&gt;&lt;span unselectable="on" class="quote-markup"&gt;[b]&lt;/span&gt;nc - 8/12/2021&lt;span unselectable="on" class="quote-markup"&gt;[/b]&lt;/span&gt;&lt;/div&gt;&lt;div class="if-quote-message if-quote-message-32082"&gt;&lt;div class="if-quote-message-margin" contenteditable="true"&gt;Hi--&amp;nbsp;&lt;br/&gt;I'm trying to add a back button for an experiment (NOT a survey page) in order to go back to a previous trial. I generally know how to use conditional logic -- the only problem is that the trials are randomized, so it's not entirely clear which trial to display. The relevant part of the experiment is set up as follows:&lt;br/&gt;&lt;br/&gt;3 randomized trials:&lt;br/&gt;&amp;lt;block similar&amp;gt;&lt;br/&gt;/trials = [1-3 = noreplace(6_by_2, 10_by_2, 12_by_2)]&lt;br/&gt;&amp;lt;/block&amp;gt;&lt;br/&gt;&lt;br/&gt;I'd like to add conditional branching to each of these trials (6_by_2, 10_by_2, 12_by_2) if the back button is pressed, but I don't know how to do this given that *which* trial is the previous trial will depend on how randomization works. Thanks in advance for any help!&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;a class="if-quote-goto quote-link" href="#" data-id="32082"&gt;&lt;span class="goto"&gt;&lt;/span&gt;&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;&lt;span unselectable="on" class="quote-markup"&gt;[/quote]&lt;/span&gt;&lt;/blockquote&gt;&lt;br/&gt;Before anyone can propose any answer, you need to spell out what's supposed to happen after someone went back to the previous trial. Suppose the random order is&lt;br/&gt;&lt;br/&gt;10_by_2 -&amp;gt; 6_by_2 -&amp;gt; 12_by_2 and then you go back from 12_by_2 to 6_by_2. What happens after that second instance of 6_by_2 then? Another instance of 12_by_2? Nothing? Another random trial?&lt;a class="if-quote-goto quote-link" href="#" data-id="32083"&gt;&lt;span class="goto"&gt;&lt;/span&gt;&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;&lt;span unselectable="on" class="quote-markup"&gt;[/quote]&lt;/span&gt;&lt;/blockquote&gt;&lt;br/&gt;Meanwhile here's an example based on guesswork. Even if that's not how you want things to work, you may be able to adapt it.&lt;br/&gt;&lt;br/&gt;[code]&amp;lt;values&amp;gt;&lt;br/&gt;/ currenttrialnumber = 0&lt;br/&gt;/ nexttrialnumber = 0&lt;br/&gt;/ loopcount = 0&lt;br/&gt;&amp;lt;/values&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;block example&amp;gt;&lt;br/&gt;/ stop = [&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;// stop once we've finished all trials&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.nexttrialnumber &amp;gt; list.trialsequence.itemcount;&lt;br/&gt;]&lt;br/&gt;/ onblockbegin = [&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;// generate a random trial sequence&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;while (values.loopcount &amp;lt; list.trials.itemcount) {&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;list.trialsequence.appenditem(list.trials.nextvalue);&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.loopcount += 1;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;};&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.nexttrialnumber = 1;&lt;br/&gt;]&lt;br/&gt;/ trials = [1=list.trialsequence]&lt;br/&gt;&amp;lt;/block&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;list trials&amp;gt;&lt;br/&gt;/ items = (trial.6_by_2, trial.10_by_2, trial.12_by_2)&lt;br/&gt;/ selectionmode = random&lt;br/&gt;/ selectionrate = always&lt;br/&gt;&amp;lt;/list&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;list trialsequence&amp;gt;&lt;br/&gt;/ select = values.nexttrialnumber&lt;br/&gt;&amp;lt;/list&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;trial 6_by_2&amp;gt;&lt;br/&gt;/ ontrialbegin = [&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.currenttrialnumber = values.nexttrialnumber;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;trial.6_by_2.resetstimulusframes();&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;// no back button in the 1st trial&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if (values.currenttrialnumber &amp;gt; 1){&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;trial.6_by_2.insertstimulusframe(button.backbutton, 1);&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;};&lt;br/&gt;]&lt;br/&gt;/ ontrialend = [&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if (trial.6_by_2.response == "backbutton") {&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.nexttrialnumber -= 1;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;} else {&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.nexttrialnumber += 1;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;};&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;// can't go below trial number 1&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.nexttrialnumber = max(1, values.nexttrialnumber);&lt;br/&gt;]&lt;br/&gt;/ stimulusframes = [1=mytext, nextbutton]&lt;br/&gt;/ inputdevice = mouse&lt;br/&gt;/ validresponse = (nextbutton, backbutton)&lt;br/&gt;/ branch = [&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;list.trialsequence.nextvalue;&lt;br/&gt;]&lt;br/&gt;&amp;lt;/trial&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;trial 10_by_2&amp;gt;&lt;br/&gt;/ ontrialbegin = [&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.currenttrialnumber = values.nexttrialnumber;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;trial.10_by_2.resetstimulusframes();&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;// no back button in the 1st trial&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if (values.currenttrialnumber &amp;gt; 1){&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;trial.10_by_2.insertstimulusframe(button.backbutton, 1);&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;};&lt;br/&gt;]&lt;br/&gt;/ ontrialend = [&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if (trial.10_by_2.response == "backbutton") {&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.nexttrialnumber -= 1;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;} else {&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.nexttrialnumber += 1;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;};&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;// can't go below trial number 1&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.nexttrialnumber = max(1, values.nexttrialnumber);&lt;br/&gt;]&lt;br/&gt;/ stimulusframes = [1=mytext, nextbutton]&lt;br/&gt;/ inputdevice = mouse&lt;br/&gt;/ validresponse = (nextbutton, backbutton)&lt;br/&gt;/ branch = [&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;list.trialsequence.nextvalue;&lt;br/&gt;]&lt;br/&gt;&amp;lt;/trial&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;trial 12_by_2&amp;gt;&lt;br/&gt;/ ontrialbegin = [&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.currenttrialnumber = values.nexttrialnumber;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;trial.12_by_2.resetstimulusframes();&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;// no back button in the 1st trial&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if (values.currenttrialnumber &amp;gt; 1){&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;trial.12_by_2.insertstimulusframe(button.backbutton, 1);&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;};&lt;br/&gt;]&lt;br/&gt;/ ontrialend = [&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if (trial.12_by_2.response == "backbutton") {&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.nexttrialnumber -= 1;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;} else {&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.nexttrialnumber += 1;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;};&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;// can't go below trial number 1&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.nexttrialnumber = max(1, values.nexttrialnumber);&lt;br/&gt;]&lt;br/&gt;/ stimulusframes = [1=mytext, nextbutton]&lt;br/&gt;/ inputdevice = mouse&lt;br/&gt;/ validresponse = (nextbutton, backbutton)&lt;br/&gt;/ branch = [&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;list.trialsequence.nextvalue;&lt;br/&gt;]&lt;br/&gt;&amp;lt;/trial&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;text mytext&amp;gt;&lt;br/&gt;/ items = ("&amp;lt;%script.currenttrial%&amp;gt;")&lt;br/&gt;&amp;lt;/text&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;button nextbutton&amp;gt;&lt;br/&gt;/ caption = "Next &amp;gt;&amp;gt;"&lt;br/&gt;/ size = (10%, 5%)&lt;br/&gt;/ position = (90%, 90%)&lt;br/&gt;&amp;lt;/button&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;button backbutton&amp;gt;&lt;br/&gt;/ caption = "&amp;lt;&amp;lt; Back"&lt;br/&gt;/ size = (10%, 5%)&lt;br/&gt;/ position = (10%, 90%)&lt;br/&gt;&amp;lt;/button&amp;gt;&lt;br/&gt;[/code]</description><pubDate>Thu, 12 Aug 2021 19:58:09 GMT</pubDate><dc:creator>Dave</dc:creator></item><item><title>RE: creating a back button for randomized trials, not surveypage</title><link>https://forums.millisecond.com/Topic32083.aspx</link><description>&lt;blockquote data-id="32082" class="if-quote-wrapper" unselectable="on" data-guid="1628788186310" id="if_insertedNode_1628788185264" contenteditable="false"&gt;&lt;a class="quote-para" unselectable="on" style="display: none;" href="#" data-id="32082" title="Move Cursor Below" contenteditable="false"&gt;&lt;span unselectable="on"&gt;+&lt;/span&gt;&lt;/a&gt;&lt;a class="quote-delete" unselectable="on" style="display: none;" href="#" data-id="32082" title="Delete Quote" contenteditable="false"&gt;&lt;span unselectable="on"&gt;x&lt;/span&gt;&lt;/a&gt;&lt;span unselectable="on" class="quote-markup"&gt;[quote]&lt;/span&gt;&lt;div unselectable="on" class="if-quote-header" contenteditable="false"&gt;&lt;div unselectable="on" class="if-quote-toggle-wrapper"&gt;&lt;a class="if-quote-toggle quote-link" href="#" data-id="32082" title=" "&gt;&amp;nbsp;&lt;/a&gt;&lt;/div&gt;&lt;span unselectable="on" class="quote-markup"&gt;[b]&lt;/span&gt;nc - 8/12/2021&lt;span unselectable="on" class="quote-markup"&gt;[/b]&lt;/span&gt;&lt;/div&gt;&lt;div class="if-quote-message if-quote-message-32082"&gt;&lt;div class="if-quote-message-margin" contenteditable="true"&gt;Hi--&amp;nbsp;&lt;br/&gt;I'm trying to add a back button for an experiment (NOT a survey page) in order to go back to a previous trial. I generally know how to use conditional logic -- the only problem is that the trials are randomized, so it's not entirely clear which trial to display. The relevant part of the experiment is set up as follows:&lt;br/&gt;&lt;br/&gt;3 randomized trials:&lt;br/&gt;&amp;lt;block similar&amp;gt;&lt;br/&gt;/trials = [1-3 = noreplace(6_by_2, 10_by_2, 12_by_2)]&lt;br/&gt;&amp;lt;/block&amp;gt;&lt;br/&gt;&lt;br/&gt;I'd like to add conditional branching to each of these trials (6_by_2, 10_by_2, 12_by_2) if the back button is pressed, but I don't know how to do this given that *which* trial is the previous trial will depend on how randomization works. Thanks in advance for any help!&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;a class="if-quote-goto quote-link" href="#" data-id="32082"&gt;&lt;span class="goto"&gt;&lt;/span&gt;&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;&lt;span unselectable="on" class="quote-markup"&gt;[/quote]&lt;/span&gt;&lt;/blockquote&gt;&lt;br/&gt;Before anyone can propose any answer, you need to spell out what's supposed to happen after someone went back to the previous trial. Suppose the random order is&lt;br/&gt;&lt;br/&gt;10_by_2 -&amp;gt; 6_by_2 -&amp;gt; 12_by_2 and then you go back from 12_by_2 to 6_by_2. What happens after that second instance of 6_by_2 then? Another instance of 12_by_2? Nothing? Another random trial?</description><pubDate>Thu, 12 Aug 2021 17:13:46 GMT</pubDate><dc:creator>Dave</dc:creator></item></channel></rss>