Hallo,
genau so sieht es aus.
D.h. Du musst Dir etwas anderes überlegen.
1. Lege die Frage mehrmals an mit verschiedenen Reihenfolgen der Items. Grundsätzlich sollte einmal vorwärts, einmal rückwärts, einmal von der Mitte aus alle geraden Items dann die ungeraden, und noch einmal umgekehrt ausreichen.
2. Da es im Grunde jeweils "Einfachnennung mit Kommentar"-Fragen sind, lege sie einzeln an und randomisiere über "Randomisierungsgruppenname".
3. Du kannst auch einen ganz anderen Fragentyp nehmen, eine Matrix(Texte) mit der dropdown-Lösung.
Da es sich um eine Matrix(Texte) handelt, werden die Ergebnisse der J/N-Frage auch als Text gespeichert.
Entweder Du kodierst später um, oder jemand macht sich die Mühe, das Forum zu durchsuchen; es gibt irgendwo eine Lösung, nicht den Text, sondern den Wert zu speichern (dann steht doert statt "Ja" eben eine "1" - zwar immer nocht Text, aber anders).
Code:
<script type="text/javascript" charset="utf-8">
$(document).on('ready pjax:scriptcomplete',function(){
var thisQuestion = $('#question{QID}');
// Add a question class
thisQuestion.addClass('custom-array');
// Column-specific classes
$('table.subquestion-list tr', thisQuestion).each(function(i) {
$('th, td', this).each(function(i) {
$(this).addClass('column-'+i);
});
});
// Insert selects
$('.answer-item.answer_cell_X001', thisQuestion).addClass('with-select').append('<select class="inserted-select form-control list-question-select">\
<option value="">...</option>\
<option value="1">Ja</option>\
<option value="2">Nein</option>\
<option value="3">Weiß nicht</option>\
</select>');
// Listeners
$('.inserted-select', thisQuestion).on('change', function(i) {
if($(this).val() != '') {
$(this).closest('.answer-item').find('input:text').val($.trim($('option:selected', this).text())).trigger('change');
}
else {
$(this).closest('.answer-item').find('input:text').val('').trigger('change');
}
});
// Returning to page
$('.with-select input:text', thisQuestion).each(function(i) {
var thisCell = $(this).closest('.answer-item');
var inputText = $.trim($(this).val());
var selectval = $('select.inserted-select option', thisCell).filter(function () { return $(this).html() == inputText; }).val();
$('select.inserted-select', thisCell).val(selectval);
});
// Clean-up styles
$('select.inserted-select', thisQuestion).css({
'max-width': '100%'
});
$('.with-select input:text', thisQuestion).css({
'position': 'absolute',
'left': '-9999em'
});
});
</script>
Code:
<style type="text/css">.custom-array table.subquestion-list col {
width: auto !important;
}
.custom-array table.subquestion-list thead .column-0 { width: 25%; }
.custom-array table.subquestion-list thead .column-1 { width: 15%; }
.custom-array table.subquestion-list thead .column-2 { width: 60%; }
</style>
Das css ist nur da, um die Breite der Spalten zu definieren.
Joffm