Welcome to the LimeSurvey Community Forum

Ask the community, share ideas, and connect with other LimeSurvey users!

Array with many different fields in a row : My solution

  • tpartner
  • tpartner's Avatar
  • Offline
  • LimeSurvey Community Team
  • LimeSurvey Community Team
More
11 years 3 months ago #89822 by tpartner
Unfortunately, I can't help diagnosing much without seeing it live.

Cheers,
Tony Partner

Solutions, code and workarounds presented in these forums are given without any warranty, implied or otherwise.
The topic has been locked.
More
11 years 2 months ago #91102 by Gabriela
Hi all,

Please, how can I add a "matrix type" question in a column at the right of the multi text question in this layout? (so the final columns layout is: matrix-multiple text-matrix)
using this code its been created before in this topic?

<script type="text/javascript" charset="utf-8">
$(document).ready(function(){

// Identify the questions
var thisQuestion = $('#question{QID}');
var nextQuestion = $(thisQuestion).next('div[id^=question]');

// Hide the multi-text question
$(nextQuestion).hide();

// Add extra cells to the array rows
$('table.question thead tr', thisQuestion).append('<th />');
$('table.question tbody tr', thisQuestion).append('<td />');


// Move the multi-text question text to the last column header cell of the array
$('table.question thead tr th:last', thisQuestion).text($('.questiontext', nextQuestion).text());


// Move the text inputs
$('input.text', nextQuestion).each(function(i){
$('table.question tbody tr:eq('+i+') td:last', 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>


Thanks in advance,
The topic has been locked.
  • tpartner
  • tpartner's Avatar
  • Offline
  • LimeSurvey Community Team
  • LimeSurvey Community Team
More
11 years 2 months ago #91111 by tpartner
Hi Gabriela, I'm confused about what you mean by "matrix-multiple text-matrix". Can you give us a screenshot of a mock-up?

Cheers,
Tony Partner

Solutions, code and workarounds presented in these forums are given without any warranty, implied or otherwise.
The topic has been locked.
More
11 years 2 months ago #91117 by Gabriela
yes.
Like this?

thanks!
The topic has been locked.
More
11 years 2 months ago #91119 by Gabriela
sorry, not that image, but this one..
The topic has been locked.
  • tpartner
  • tpartner's Avatar
  • Offline
  • LimeSurvey Community Team
  • LimeSurvey Community Team
More
11 years 2 months ago #91123 by tpartner
But...isn't that the same as this solution - www.limesurvey.org/en/forum/can-i-do-thi...it=10&start=10#90892 ?

Cheers,
Tony Partner

Solutions, code and workarounds presented in these forums are given without any warranty, implied or otherwise.
The topic has been locked.
More
11 years 2 months ago #91130 by Gabriela
:blink: :blink: :blink: :blink: ..(ect..)
sorry 2 much. thanks for reminding me.. (im with sort of with 10000 different surveys at the same time)..

And then , can I append this new mutiple-text column to the previous one (the one composed by the matrix + multiple text? )and build the figure from the image?
The topic has been locked.
More
11 years 2 months ago #91135 by Gabriela
Ok, now I understand..
Im having all this mess, cause its important to have graphic statistics on most questions as possible. So I was asked to avoid as much as possible input text questions. In this case, I wanted to build a layout where the first column is composed by an array (numbers), the second is a multiple input text (here had no option cause it can be any written answer) and the third column, a yes/no array (with no uncertain, thats way I chose a matrix (plain) type with yes/no as sub-answers, and dropbox setting)...
Im sending you the whole picture. Hope you can see it correctly cause its done in a custom template ect ect...

I need to append the "Disponível as crianças" question to the main layout. As a another column at the end (right)..

Grazie.
Attachments:
The topic has been locked.
  • tpartner
  • tpartner's Avatar
  • Offline
  • LimeSurvey Community Team
  • LimeSurvey Community Team
More
11 years 2 months ago #91151 by tpartner
And now I understand. I'll give this a little thought tonight.

Cheers,
Tony Partner

Solutions, code and workarounds presented in these forums are given without any warranty, implied or otherwise.
The topic has been locked.
  • tpartner
  • tpartner's Avatar
  • Offline
  • LimeSurvey Community Team
  • LimeSurvey Community Team
More
11 years 2 months ago - 11 years 2 months ago #91170 by tpartner
Here you go. This script will add columns to the first array question, hide the following questions and then insert their text inputs and select (dropdown) elements into the new columns.
Code:
<script type="text/javascript" charset="utf-8">$(document).ready(function(){
 
    // Identify the questions
    var thisQuestion = $('#question{QID}');
    var nextMultiText = $(thisQuestion).nextAll('.multiple-short-txt:eq(0)');
    var nextArrayFlexi = $(thisQuestion).nextAll('.array-flexible-row:eq(0)');
 
    // Hide the next questions 
    $(nextMultiText).hide();
    $(nextArrayFlexi).hide();
 
    // Add extra columns to the visible array
    $('table.question thead tr', thisQuestion).append('<th class="newColumn1" /><th class="newColumn2" />');
    $('table.question tbody tr', thisQuestion).append('<td class="newColumn1" /><td class="newColumn2" />');
 
    // Move the hidden question text to the inserted columns
    $('table.question thead tr th.newColumn1', thisQuestion).text($('.questiontext', nextMultiText).text());
    $('table.question thead tr th.newColumn2', thisQuestion).text($('.questiontext', nextArrayFlexi).text());
 
    // Move the hidden text inputs and dropdowns
    $('input.text', nextMultiText).each(function(i){
      $('table.question tbody tr:eq('+i+') td.newColumn1', thisQuestion).append(this);
    });
    $('select', nextArrayFlexi).each(function(i){
      $('table.question tbody tr:eq('+i+') td.newColumn2', 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>

Here's a demo survey:

File Attachment:

File Name: limesurvey...4438.lss
File Size:56 KB

Cheers,
Tony Partner

Solutions, code and workarounds presented in these forums are given without any warranty, implied or otherwise.
Last edit: 11 years 2 months ago by tpartner.
The topic has been locked.
More
11 years 2 months ago #91185 by Gabriela
Master..! thanks one million time again.
The topic has been locked.
More
10 years 10 months ago #96006 by jupo
Hello everybody,
I experience the same difficulties as tbudelli when inserting the script of tpartner into the source of the array question. Did anybody find a solution to that problem? The comment question appears next to the matrix question, but the input fields don´t show up, just as you see in the pdf (I know, not the most beautiful solution but the snipping tool is not working...).
Help would be grate!!
Attachments:
The topic has been locked.

Lime-years ahead

Online-surveys for every purse and purpose