Ich habe ein Textfeld und vier Fragen nebeneinander pro Seite (davon mehrere Seiten aufeinanderfolgend). Die Fragen sind unterschiedliche Variablen mit gleichem Wortlaut (Concept 1-4), nur der Text im Textfeld (jeweiliges Item) verändert sich.
Ich würde gerne einrichten, dass die Reihenfolge dieser vier Fragen (diese Seite: D101-D104) auf den einzelnen Seiten zufällig erscheint - allerdings nur pro Person, die den Fragebogen ausfüllt. D. h. die vier Fragen sollen innerhalb der Beantwortung immer in der gleichen Reihenfolge auftreten, aber für unterschiedliche Teilnehmende in zufällig unterschiedlicher Reihenfolge.
Ich freue mich über Hilfe, wie ich das umsetzen kann. Vielen Dank!
Die Seite pro Frage sieht bisher in PHP- bzw. HTML-Code so aus:
(Instruktionstext)
pageCSS('
tr:first-child th {
border-bottom: 2px solid black;
}
');
<table width="100%" cellspacing="0" cellpadding="0" border="0" style="table-layout:fixed; width: 100%;">
<colgroup>
<col width="20%">
<col width="20%">
<col width="20%">
<col width="20%">
<col width="20%">
</colgroup>
<tr>
<th>Item</th>
<th>Concept 1</th>
<th>Concept 2</th>
<th>Concept 3</th>
<th>Concept 4</th>
</tr>
<td>
(Text für "Item", pro Seite unterschiedlich)
</td>
<td>
question('D101','show-title=yes', 'show-explanation=no', 'spacing=0');
</td>
<td>
question('D102','show-title=yes', 'show-explanation=no', 'spacing=0');
</td>
<td>
question('D103','show-title=yes', 'show-explanation=no', 'spacing=0');
</td>
<td>
question('D104','show-title=yes', 'show-explanation=no', 'spacing=0');
</td>
</tr>
</table>
dann folgt noch:
<script type="text/javascript">
<!--
SoSciTools.attachEvent(window, "load", function(evt) {
SoSciTools.submitButtonsHide();
});
// -->
</script>
<script type="text/javascript">
<!--
SoSciTools.attachEvent(window, "load", function(evt) {
var dropdowns = document.querySelectorAll('select[id^="D102"], select[id^="D103"], select[id^="D104"], select[id^="D101"]');
dropdowns.forEach(function(dropdown) {
SoSciTools.attachEvent(dropdown, "change", function() {
var allDropdownsAnswered = true;
dropdowns.forEach(function(otherDropdown) {
if (otherDropdown !== dropdown && otherDropdown.selectedIndex === 0) {
allDropdownsAnswered = false;
}
});
if (allDropdownsAnswered) {
SoSciTools.submitPage();
}
});
});
});
// -->
</script>