Hallo,
Da Du uns leider nicht gesagt hast, mit welcher Version Du arbeitest, hier ein Beispiel, dass auf jeden Fall in 3.x. funktioniert.
Es handelt sich um eine Matrix(Texte)
Zunächst das script:
Code:
<script type="text/javascript" charset="utf-8">
$(document).on('ready pjax:scriptcomplete',function(){
var thisQuestion = $('#question{QID}');
// Insert selects
$('.answer-item.answer_cell_X001', thisQuestion).addClass('with-select').append('<select class="inserted-select form-control list-question-select">\
<option value="">select...</option>\
<option value="1">very poor</option>\
<option value="2">somewhat poor</option>\
<option value="3">neither/nor</option>\
<option value="4">good</option>\
<option value="5">very good</option>\
</select>');
$('.answer-item.answer_cell_X002', thisQuestion).addClass('with-select').append('<select class="inserted-select form-control list-question-select">\
<option value="">select...</option>\
<option value="1">high</option>\
<option value="2">mid</option>\
<option value="3">low</option>\
</select>');
$('.answer-item.answer_cell_X003', thisQuestion).addClass('with-select').append('<select class="inserted-select form-control list-question-select">\
<option value="">select...</option>\
<option value="1">very satisfied</option>\
<option value="2">somewhat satisfied</option>\
<option value="3">neither/nor</option>\
<option value="4">somewhat unsatisfied</option>\
<option value="5">very unsatisfied</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>
Du siehst, wo Du das script anpassen musst, nämlich in den "Selects".
Wie Du hier siehst (
answer_cell_X003) sind die Teilfragen der X-Achse mit "X001", "X002", ... codiert.
Ebenso benutze ich gerne für die Y-Achse entsprechend "Y001", "Y002", ...
Dies erleichtert später die Auswertung, da man keine Zellen "Q1_SQ001_SQ002" hat (was ist Zeile, was ist Spalte?)
Da es sich um eine Matrix(texte) handelt, wirst Du später beim Export auch diese Texte erhalten; da musst Du dann evtl. umcodieren.
Das kannst Du natürlich ausbauen auf mehr Spalten, oder auch nur einige Spalten als Drop-Down, andere als Texteingabe.
Joffm