Well, after a lot of banging my hands against the keyboard (and my head against the desk) I figured out how to do this using scripting control. I figured I would go ahead and post my solution here.
The first key, which is mentioned elsewhere in the forum, is to understand that each row in a matrix question has ITS OWN question sku. As near as I can tell, the only way to see the sku is to “view source” of the survey and pull it right from the code. In my survey, I was able to identify it like so:
<tr id=”sgq10_row_1″ class=”sg_TR_Alt” >
<td class=”sg_TD1″ scope=”row” width=”150″ style=”width:150px !important” >The Factor Game</td>
<td class=”sg_TDX sg_TD2″ style=”width:100px !important” align=”center” ><input class=”sg_Radio” type=”radio” name=”Q_11″ id=”Q_11O0″ title=”Use without modification” value=”O0″ /></td>
<td class=”sg_TDX sg_TD3″ style=”width:100px !important” align=”center” ><input class=”sg_Radio” type=”radio” name=”Q_11″ id=”Q_11O1″ title=”Use with adaptation” value=”O1″ /></td>
<td class=”sg_TDX sg_TD4″ style=”width:100px !important” align=”center” ><input class=”sg_Radio” type=”radio” name=”Q_11″ id=”Q_11O2″ title=”Use as a one of many resources” value=”O2″ /></td>
<td class=”sg_TDX sg_TD5″ style=”width:100px !important” align=”center” ><input class=”sg_Radio” type=”radio” name=”Q_11″ id=”Q_11O3″ title=”Replace” value=”O3″ /></td>
<td class=”sg_TDX sg_TD6″ style=”width:100px !important” align=”center” ><input class=”sg_Radio” type=”radio” name=”Q_11″ id=”Q_11O4″ title=”Does not use” value=”O4″ /></td></tr>
<tr id=”sgq10_row_2″ class=”sg_TR” >
<td class=”sg_TD1″ scope=”row” width=”150″ style=”width:150px !important” >The Product Game</td>
<td class=”sg_TDX sg_TD2″ style=”width:100px !important” align=”center” ><input class=”sg_Radio” type=”radio” name=”Q_12″ id=”Q_12O0″ title=”Use without modification” value=”O0″ /></td>
<td class=”sg_TDX sg_TD3″ style=”width:100px !important” align=”center” ><input class=”sg_Radio” type=”radio” name=”Q_12″ id=”Q_12O1″ title=”Use with adaptation” value=”O1″ /></td>
<td class=”sg_TDX sg_TD4″ style=”width:100px !important” align=”center” ><input class=”sg_Radio” type=”radio” name=”Q_12″ id=”Q_12O2″ title=”Use as a one of many resources” value=”O2″ /></td>
<td class=”sg_TDX sg_TD5″ style=”width:100px !important” align=”center” ><input class=”sg_Radio” type=”radio” name=”Q_12″ id=”Q_12O3″ title=”Replace” value=”O3″ /></td>
<td class=”sg_TDX sg_TD6″ style=”width:100px !important” align=”center” ><input class=”sg_Radio” type=”radio” name=”Q_12″ id=”Q_12O4″ title=”Does not use” value=”O4″ /></td></tr>
(So the code above shows two rows from a matrix question with the sku of 11 and 12. The sku for the question itself is 10.)
The other key was realizing the Page Jumping in the current version of SurveyGizmo is a little bit broken… Particularly when you reorder questions or create them out of order. Rather than use simple page jumping, it is MUCH MORE RELIABLE to use Show/Hide logic. The difference between “jumping” to three pages later and “hiding” the pages between here and there took me a bit to get over. But using this method makes scripting a TON easier.
Once I was armed with these two key pieces of data, I was ready to go. I created an array of the matrix responses. Then I looped through each of them to check to see if the response was != to the default answer. If it was not, I recorded that variable in a hidden tracking value and used it to determine which pages were shown and which were hidden.
The code I used is pasted below for others' use and future reference. Any critique is welcome (especially a way to just create the arrays via looping instead of adding them all manually). Hope this helps out others in the future!
%%destination = 'blank';
%%skustocheck[] = 295;
%%skustocheck[] = 296;
%%skustocheck[] = 297;
%%skustocheck[] = 298;
%%skustocheck[] = 300;
%%skustocheck[] = 301;
%%skustocheck[] = 302;
%%skustocheck[] = 303;
%%skustocheck[] = 305;
%%skustocheck[] = 306;
%%skustocheck[] = 307;
%%skustocheck[] = 309;
%%skustocheck[] = 310;
%%skustocheck[] = 311;
%%skustocheck[] = 312;
%%skustocheck[] = 314;
%%skustocheck[] = 315;
%%skustocheck[] = 316;
%%skustocheck[] = 317;
%%skustocheck[] = 318;
%%skustocheck[] = 320;
%%skustocheck[] = 321;
%%skustocheck[] = 322;
%%skustocheck[] = 323;
%%skustocheck[] = 325;
%%skustocheck[] = 326;
%%skustocheck[] = 327;
%%skustocheck[] = 328;
%%skustocheck[] = 329;
foreach(%%skustocheck as %%sku)
{
if (%%destination == 'blank')
{
%%reportvalue = sgapiGetValue(%%sku);
if (%%reportvalue != 'Use without modification')
{
%%destination = %%reportvalue;
%%yourtitle = sgapiGetTitle(%%sku,”English”);
}
}
}
%%output .= 'You chose <strong>' . %%destination . '</strong> for <strong>';
%%output .= %%yourtitle . '</strong>. For each lesson in ' . %%yourtitle . ' ';
%%output .= 'please provide more detail on the next page. Click the button below to continue.';
sgapiSetValue(76,%%destination);