This day challenge was to install limesurvey and copy an existing survey built with EUSurvey. One of the question was an array with comments for every sub-question in the last column. LimeSurvey does not offer a built in question for that you need to tweak the array question to work.
So here is my solution.
- Create the array with the answers and sub-questions.
- Create a Multiple short text question with as many sub-question as many there are in the array.
- Edit the Array question.
- Add the following code to copy the Multi short text questions to the Array.
<script type="text/javascript" charset="utf-8"> $(document).ready(function(){ // Identify the questions var thisQuestion = $('#question{QID}'); var nextMultiText1 = $(thisQuestion).nextAll('.multiple-short-txt:eq(0)'); // Hide the next questions $(nextMultiText1).hide(); // Add extra columns to the array $('table.question thead tr th:eq(6)', thisQuestion).after('<th class="newColumn1" />'); $('table.question tbody tr', thisQuestion).each(function(i) { $('td:eq(5)', this).after('<td class="newColumn1" />'); }); // Move the hidden question text to the inserted columns $('table.question thead tr th.newColumn1', thisQuestion).text($('.questiontext', nextMultiText1).text()); // Move the text inputs and dropdowns $('input.text', nextMultiText1).each(function(i){ $('table.question tbody tr:eq('+i+') td.newColumn1', thisQuestion).append(this); }); // Some cleanup styles (for the default template) $('col', thisQuestion).css({ 'width': 'auto' }); $('table.question tbody th, table.question tbody td', thisQuestion).css({ 'padding': '4px 10px' }); }); </script>
Please note that the script has to be added to all language versions.
Survey can be downloaded from this link:
http://eduroll.eu/wp-content/uploads/2017/09/limesurvey_survey_nagygzs.zip
Cheers.