﻿<?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  » list selection based on criteria</title><generator>InstantForum 2017-1 Final</generator><description>Millisecond Forums</description><link>https://forums.millisecond.com/</link><webMaster>Millisecond Forums</webMaster><lastBuildDate>Thu, 05 Mar 2026 23:55:02 GMT</lastBuildDate><ttl>20</ttl><item><title>list selection based on criteria</title><link>https://forums.millisecond.com/Topic41378.aspx</link><description>Hi! &lt;br/&gt;I'm struggeling to program a presentation of pictures and texts with randomized selection based on specific criteria: I want to randomly select three out of five pictures from each category A and B. For each selected picture, I also want to select a text corresponding to the same category A or B. Within a block, the trials could look like this: picA1-textA2, picA2-textA1, picB1-textB5, ... (each picture-text combination is presented twice)&lt;br/&gt;&lt;br/&gt;I've tried different settings using the variables within /onBlockBegin. But currently, I either manage to present the corresponding pairs by item numbers (picA1-textA1) or present compleatly random combinations and mixing A and B incorrectly (picA1-textB2).&lt;br/&gt;What I'm looking for is something like "if list.selected_picA then list.selected_textA", but I cannot figure out how to program this dependency correctly.&amp;nbsp;&lt;br/&gt;I would really appreciate your help or hints!&lt;br/&gt;&lt;br/&gt;This is the code I'm working with at the moment: &lt;br/&gt;&amp;lt;item pic_all&amp;gt;&lt;br/&gt;/ 1 = "picA1"&lt;br/&gt;/ 2 = "picA2"&lt;br/&gt;/ 3 = "picA3"&lt;br/&gt;/ 4 = "picA4"&lt;br/&gt;/ 5 = "picA5"&lt;br/&gt;/ 6 = "picB1"&lt;br/&gt;/ 7 = "picB2"&lt;br/&gt;/ 8 = "picB3"&lt;br/&gt;/ 9 = "picB4"&lt;br/&gt;/ 10 = "picB5"&lt;br/&gt;&amp;lt;/item&amp;gt;&lt;br/&gt;&amp;lt;list selected_pic&amp;gt;&lt;br/&gt;&amp;lt;/list&amp;gt;&lt;br/&gt;&amp;lt;text pic&amp;gt;&lt;br/&gt;/ items = pic_all&lt;br/&gt;/ position = (50, 40)&lt;br/&gt;/ select = list.selected_pic.nextvalue&lt;br/&gt;&amp;lt;/text&amp;gt;&lt;br/&gt;&amp;lt;list selected_picA&amp;gt;&lt;br/&gt;/ items = (1-5)&lt;br/&gt;/ selectionrate = always&lt;br/&gt;&amp;lt;/list&amp;gt;&lt;br/&gt;&amp;lt;list selected_picB&amp;gt;&lt;br/&gt;/ items = (6-10)&lt;br/&gt;/ selectionrate = always&lt;br/&gt;&amp;lt;/list&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;item text_all&amp;gt;&lt;br/&gt;/ 1 = "textA1"&lt;br/&gt;/ 2 = "textA2"&lt;br/&gt;/ 3 = "textA3"&lt;br/&gt;/ 4 = "textA4"&lt;br/&gt;/ 5 = "textA5"&lt;br/&gt;/ 6 = "textB1"&lt;br/&gt;/ 7 = "textB2"&lt;br/&gt;/ 8 = "textB3"&lt;br/&gt;/ 9 = "textB4"&lt;br/&gt;/ 10 = "textB5"&lt;br/&gt;&amp;lt;/item&amp;gt;&lt;br/&gt;&amp;lt;list selected_text&amp;gt;&lt;br/&gt;&amp;lt;/list&amp;gt;&lt;br/&gt;&amp;lt;text text&amp;gt;&lt;br/&gt;/ items = text_all&lt;br/&gt;/ position = (50, 55)&lt;br/&gt;/ select = list.selected_text.nextvalue&lt;br/&gt;&amp;lt;/text&amp;gt;&lt;br/&gt;&amp;lt;list selected_textA&amp;gt;&lt;br/&gt;/ items = (1-5)&lt;br/&gt;/ selectionrate = always&lt;br/&gt;&amp;lt;/list&amp;gt;&lt;br/&gt;&amp;lt;list selected_textB&amp;gt;&lt;br/&gt;/ items = (6-10)&lt;br/&gt;/ selectionrate = always&lt;br/&gt;&amp;lt;/list&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;trial trial&amp;gt;&lt;br/&gt;/ stimulusframes = [1 = pic, text]&lt;br/&gt;/ timeout = 1000&lt;br/&gt;&amp;lt;/trial&amp;gt;&lt;br/&gt;&amp;lt;block block&amp;gt;&lt;br/&gt;/ onblockbegin = [&lt;br/&gt;var i = 0;&lt;br/&gt;while (i &amp;lt; 3) {list.selected_pic.appendItem(list.selected_picA.nextValue); i += 1; };&lt;br/&gt;i = 0;&lt;br/&gt;while (i &amp;lt; 3) {list.selected_pic.appendItem(list.selected_picB.nextValue); i += 1; };&lt;br/&gt;var j = 0;&lt;br/&gt;while (j &amp;lt; 3) {list.selected_text.appendItem(list.selected_textA.nextValue); j += 1; };&lt;br/&gt;j = 0;&lt;br/&gt;while (j &amp;lt; 3) {list.selected_text.appendItem(list.selected_textB.nextValue); j += 1; };]&lt;br/&gt;/ trials = [1-12 = trial]&lt;br/&gt;&amp;lt;/block&amp;gt;&lt;br/&gt;&lt;br/&gt;</description><pubDate>Thu, 17 Jul 2025 12:31:39 GMT</pubDate><dc:creator>nfbecker</dc:creator></item><item><title>RE: list selection based on criteria</title><link>https://forums.millisecond.com/Topic41379.aspx</link><description>&lt;blockquote data-id="41378" class="if-quote-wrapper" unselectable="on" data-guid="1752751984665" contenteditable="false" id="if_insertedNode_1752751984086"&gt;&lt;a class="quote-para" unselectable="on" style="display: none;" href="#" data-id="41378" 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="41378" 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="41378" title=" "&gt;&amp;nbsp;&lt;/a&gt;&lt;/div&gt;&lt;span unselectable="on" class="quote-markup"&gt;[b]&lt;/span&gt;nfbecker - 7/17/2025&lt;span unselectable="on" class="quote-markup"&gt;[/b]&lt;/span&gt;&lt;/div&gt;&lt;div class="if-quote-message if-quote-message-41378"&gt;&lt;div class="if-quote-message-margin" contenteditable="true"&gt;Hi! &lt;br/&gt;I'm struggeling to program a presentation of pictures and texts with randomized selection based on specific criteria: I want to randomly select three out of five pictures from each category A and B. For each selected picture, I also want to select a text corresponding to the same category A or B. Within a block, the trials could look like this: picA1-textA2, picA2-textA1, picB1-textB5, ... (each picture-text combination is presented twice)&lt;br/&gt;&lt;br/&gt;I've tried different settings using the variables within /onBlockBegin. But currently, I either manage to present the corresponding pairs by item numbers (picA1-textA1) or present compleatly random combinations and mixing A and B incorrectly (picA1-textB2).&lt;br/&gt;What I'm looking for is something like "if list.selected_picA then list.selected_textA", but I cannot figure out how to program this dependency correctly.&amp;nbsp;&lt;br/&gt;I would really appreciate your help or hints!&lt;br/&gt;&lt;br/&gt;This is the code I'm working with at the moment: &lt;br/&gt;&amp;lt;item pic_all&amp;gt;&lt;br/&gt;/ 1 = "picA1"&lt;br/&gt;/ 2 = "picA2"&lt;br/&gt;/ 3 = "picA3"&lt;br/&gt;/ 4 = "picA4"&lt;br/&gt;/ 5 = "picA5"&lt;br/&gt;/ 6 = "picB1"&lt;br/&gt;/ 7 = "picB2"&lt;br/&gt;/ 8 = "picB3"&lt;br/&gt;/ 9 = "picB4"&lt;br/&gt;/ 10 = "picB5"&lt;br/&gt;&amp;lt;/item&amp;gt;&lt;br/&gt;&amp;lt;list selected_pic&amp;gt;&lt;br/&gt;&amp;lt;/list&amp;gt;&lt;br/&gt;&amp;lt;text pic&amp;gt;&lt;br/&gt;/ items = pic_all&lt;br/&gt;/ position = (50, 40)&lt;br/&gt;/ select = list.selected_pic.nextvalue&lt;br/&gt;&amp;lt;/text&amp;gt;&lt;br/&gt;&amp;lt;list selected_picA&amp;gt;&lt;br/&gt;/ items = (1-5)&lt;br/&gt;/ selectionrate = always&lt;br/&gt;&amp;lt;/list&amp;gt;&lt;br/&gt;&amp;lt;list selected_picB&amp;gt;&lt;br/&gt;/ items = (6-10)&lt;br/&gt;/ selectionrate = always&lt;br/&gt;&amp;lt;/list&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;item text_all&amp;gt;&lt;br/&gt;/ 1 = "textA1"&lt;br/&gt;/ 2 = "textA2"&lt;br/&gt;/ 3 = "textA3"&lt;br/&gt;/ 4 = "textA4"&lt;br/&gt;/ 5 = "textA5"&lt;br/&gt;/ 6 = "textB1"&lt;br/&gt;/ 7 = "textB2"&lt;br/&gt;/ 8 = "textB3"&lt;br/&gt;/ 9 = "textB4"&lt;br/&gt;/ 10 = "textB5"&lt;br/&gt;&amp;lt;/item&amp;gt;&lt;br/&gt;&amp;lt;list selected_text&amp;gt;&lt;br/&gt;&amp;lt;/list&amp;gt;&lt;br/&gt;&amp;lt;text text&amp;gt;&lt;br/&gt;/ items = text_all&lt;br/&gt;/ position = (50, 55)&lt;br/&gt;/ select = list.selected_text.nextvalue&lt;br/&gt;&amp;lt;/text&amp;gt;&lt;br/&gt;&amp;lt;list selected_textA&amp;gt;&lt;br/&gt;/ items = (1-5)&lt;br/&gt;/ selectionrate = always&lt;br/&gt;&amp;lt;/list&amp;gt;&lt;br/&gt;&amp;lt;list selected_textB&amp;gt;&lt;br/&gt;/ items = (6-10)&lt;br/&gt;/ selectionrate = always&lt;br/&gt;&amp;lt;/list&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;trial trial&amp;gt;&lt;br/&gt;/ stimulusframes = [1 = pic, text]&lt;br/&gt;/ timeout = 1000&lt;br/&gt;&amp;lt;/trial&amp;gt;&lt;br/&gt;&amp;lt;block block&amp;gt;&lt;br/&gt;/ onblockbegin = [&lt;br/&gt;var i = 0;&lt;br/&gt;while (i &amp;lt; 3) {list.selected_pic.appendItem(list.selected_picA.nextValue); i += 1; };&lt;br/&gt;i = 0;&lt;br/&gt;while (i &amp;lt; 3) {list.selected_pic.appendItem(list.selected_picB.nextValue); i += 1; };&lt;br/&gt;var j = 0;&lt;br/&gt;while (j &amp;lt; 3) {list.selected_text.appendItem(list.selected_textA.nextValue); j += 1; };&lt;br/&gt;j = 0;&lt;br/&gt;while (j &amp;lt; 3) {list.selected_text.appendItem(list.selected_textB.nextValue); j += 1; };]&lt;br/&gt;/ trials = [1-12 = trial]&lt;br/&gt;&amp;lt;/block&amp;gt;&lt;br/&gt;&lt;br/&gt;&lt;a class="if-quote-goto quote-link" href="#" data-id="41378"&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;You just need to pair the pic and text list, it's not complicated.&lt;br/&gt;&lt;br/&gt;[code]&amp;lt;item pic_all&amp;gt;&lt;br/&gt;/ 1 = "picA1"&lt;br/&gt;/ 2 = "picA2"&lt;br/&gt;/ 3 = "picA3"&lt;br/&gt;/ 4 = "picA4"&lt;br/&gt;/ 5 = "picA5"&lt;br/&gt;/ 6 = "picB1"&lt;br/&gt;/ 7 = "picB2"&lt;br/&gt;/ 8 = "picB3"&lt;br/&gt;/ 9 = "picB4"&lt;br/&gt;/ 10 = "picB5"&lt;br/&gt;&amp;lt;/item&amp;gt;&lt;br/&gt;&amp;lt;list selected_pic&amp;gt;&lt;br/&gt;&amp;lt;/list&amp;gt;&lt;br/&gt;&amp;lt;text pic&amp;gt;&lt;br/&gt;/ items = pic_all&lt;br/&gt;/ position = (50, 40)&lt;br/&gt;/ select = list.selected_pic.nextvalue&lt;br/&gt;&amp;lt;/text&amp;gt;&lt;br/&gt;&amp;lt;list selected_picA&amp;gt;&lt;br/&gt;/ items = (1-5)&lt;br/&gt;/ selectionrate = always&lt;br/&gt;&amp;lt;/list&amp;gt;&lt;br/&gt;&amp;lt;list selected_picB&amp;gt;&lt;br/&gt;/ items = (6-10)&lt;br/&gt;/ selectionrate = always&lt;br/&gt;&amp;lt;/list&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;item text_all&amp;gt;&lt;br/&gt;/ 1 = "textA1"&lt;br/&gt;/ 2 = "textA2"&lt;br/&gt;/ 3 = "textA3"&lt;br/&gt;/ 4 = "textA4"&lt;br/&gt;/ 5 = "textA5"&lt;br/&gt;/ 6 = "textB1"&lt;br/&gt;/ 7 = "textB2"&lt;br/&gt;/ 8 = "textB3"&lt;br/&gt;/ 9 = "textB4"&lt;br/&gt;/ 10 = "textB5"&lt;br/&gt;&amp;lt;/item&amp;gt;&lt;br/&gt;&amp;lt;list selected_text&amp;gt;&lt;br/&gt;/ selectionmode = list.selected_pic.currentindex // pair to pic list&lt;br/&gt;&amp;lt;/list&amp;gt;&lt;br/&gt;&amp;lt;text text&amp;gt;&lt;br/&gt;/ items = text_all&lt;br/&gt;/ position = (50, 55)&lt;br/&gt;/ select = list.selected_text.nextvalue&lt;br/&gt;&amp;lt;/text&amp;gt;&lt;br/&gt;&amp;lt;list selected_textA&amp;gt;&lt;br/&gt;/ items = (1-5)&lt;br/&gt;/ selectionrate = always&lt;br/&gt;&amp;lt;/list&amp;gt;&lt;br/&gt;&amp;lt;list selected_textB&amp;gt;&lt;br/&gt;/ items = (6-10)&lt;br/&gt;/ selectionrate = always&lt;br/&gt;&amp;lt;/list&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;trial trial&amp;gt;&lt;br/&gt;/ stimulusframes = [1 = pic, text]&lt;br/&gt;/ timeout = 1000&lt;br/&gt;&amp;lt;/trial&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;block block&amp;gt;&lt;br/&gt;/ onblockbegin = [&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;var i = 0;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;while (i &amp;lt; 3) {&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;list.selected_pic.appendItem(list.selected_picA.nextValue); // pick random pic from category A&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;list.selected_text.appendItem(list.selected_textA.nextValue); // pick random text from category A&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;i += 1;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;};&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;i = 0;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;while (i &amp;lt; 3) {&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;list.selected_pic.appendItem(list.selected_picB.nextValue); // pick random pic from category B&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;list.selected_text.appendItem(list.selected_textB.nextValue); // pick random text from category B&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;i += 1;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;};&lt;br/&gt;]&lt;br/&gt;/ trials = [1-12 = trial]&lt;br/&gt;&amp;lt;/block&amp;gt;[/code]</description><pubDate>Thu, 17 Jul 2025 12:31:39 GMT</pubDate><dc:creator>Dave</dc:creator></item></channel></rss>