Welcome to the LimeSurvey Community Forum

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

Array with large text fields

  • nique
  • nique's Avatar Topic Author
  • Offline
  • Junior Member
  • Junior Member
More
5 years 9 months ago #169901 by nique
Array with large text fields was created by nique
I found this great thread with super helpful script by tpartner!



www.limesurvey.org/forum/can-i-do-this-w...-text-comment-fields

I am trying to edit the script slightly but am struggling.

On one page, I am presenting single arrays per question. This is just due to the nature of the question and how the researcher wants to present it.

I want to have each question/array have its own comment box - which includes some text specific to the question.

Unfortunately, this script picks up on all the comment boxes on the page and presents all 3, rather than just the one I want.

I am attaching my question group as an example of my survey -

File Attachment:

File Name: nique_mult...ents.lsg
File Size:19 KB


There will be more questions per page as well. Hope this makes sense and I can get some help.

Thanks in advance.
The topic has been locked.
  • holch
  • holch's Avatar
  • Offline
  • LimeSurvey Community Team
  • LimeSurvey Community Team
More
5 years 9 months ago #169903 by holch
Replied by holch on topic Array with large text fields
Ideally you always provide a .lss file that the forum helpers can just import and play with (of course stripped of everything unnecessary and focused on the problems in question). Otherwise the forum helpers have to create a survey and then import your question group, which also will only work, if the base language is right, etc.

I answer at the LimeSurvey forum in my spare time, I'm not a LimeSurvey GmbH employee.
No support via private message.

The topic has been locked.
  • nique
  • nique's Avatar Topic Author
  • Offline
  • Junior Member
  • Junior Member
More
5 years 9 months ago #169904 by nique
Replied by nique on topic Array with large text fields

File Attachment:

File Name: nique_mult...6-14.lss
File Size:30 KB



Apologies. LSS file attached with an example of one group of questions.
The topic has been locked.
  • tpartner
  • tpartner's Avatar
  • Offline
  • LimeSurvey Community Team
  • LimeSurvey Community Team
More
5 years 9 months ago #169910 by tpartner
Replied by tpartner on topic Array with large text fields
When providing examples, please give them in .lss (survey export) format so we don't have to spend time creating surveys.

Cheers,
Tony Partner

Solutions, code and workarounds presented in these forums are given without any warranty, implied or otherwise.
The topic has been locked.
  • nique
  • nique's Avatar Topic Author
  • Offline
  • Junior Member
  • Junior Member
More
5 years 9 months ago #169911 by nique
Replied by nique on topic Array with large text fields
Yep. Holch pointed this out and the reply there has the lss file.
The topic has been locked.
  • tpartner
  • tpartner's Avatar
  • Offline
  • LimeSurvey Community Team
  • LimeSurvey Community Team
More
5 years 9 months ago #169922 by tpartner
Replied by tpartner on topic Array with large text fields
What is your LimeSurvey version?

Cheers,
Tony Partner

Solutions, code and workarounds presented in these forums are given without any warranty, implied or otherwise.
The topic has been locked.
  • nique
  • nique's Avatar Topic Author
  • Offline
  • Junior Member
  • Junior Member
More
5 years 9 months ago #169930 by nique
Replied by nique on topic Array with large text fields
2.59.
The topic has been locked.
  • tpartner
  • tpartner's Avatar
  • Offline
  • LimeSurvey Community Team
  • LimeSurvey Community Team
More
5 years 9 months ago - 5 years 7 months ago #169932 by tpartner
Replied by tpartner on topic Array with large text fields
In that case, this should work:

Code:
<script type="text/javascript" charset="utf-8">  
 
  $(document).ready(function() {
 
    // Identify the questions
    var qArray = $('#question{QID}');
    var arrayLength = $('tr.answers-list', qArray).length;
    var qComments = qArray.nextAll('.text-long:lt('+arrayLength+')');
 
    // Add some classes
    qArray.addClass('array-with-comments-question');
    $(qComments).each(function(i) {
      $(this).addClass('comments-question index-{SGQ}-'+i);
    });
 
    // Insert the comments buttons
    $('table.questions-list col', qArray).removeAttr('width');
    $('table.questions-list thead tr', qArray).append('<td />');
    $('tr.answers-list', qArray).each(function(i) {
      $(this).append('<td><button class="comment-button" type="button" data-index="{SGQ}-'+i+'">Comments</button></td>');
    });
 
    // Put the comments questions into modal dialogs    
    $(qComments).dialog({
      autoOpen: false,
      width: 620,
      modal: true,
      resizable: false,
      draggable: false,
      closeOnEscape: true
    });
 
    // Click events for comments buttons
    $('.comment-button').click(function() {
      var thisIndex = $(this).attr('data-index');
      $('.comments-question.index-'+thisIndex).dialog('open');
    });  
 
    // Interrupt the Next/Submit function (to put comments back in the form)
    $('#limesurvey').submit(function (e) {      
      qComments.hide();
      $('#limesurvey').append(qComments);
    });    
 
  });
</script>

Working survey attached:

File Attachment:

File Name: limesurvey...97_2.lss
File Size:31 KB

Cheers,
Tony Partner

Solutions, code and workarounds presented in these forums are given without any warranty, implied or otherwise.
Last edit: 5 years 7 months ago by tpartner.
The following user(s) said Thank You: nique
The topic has been locked.
  • nique
  • nique's Avatar Topic Author
  • Offline
  • Junior Member
  • Junior Member
More
5 years 7 months ago #171901 by nique
Replied by nique on topic Array with large text fields
Apologies for my delayed thanks. This was a very rushed project and your code saved me greatly so thanks!

Unfortunately, I have just come to realise that none of the comments boxes are saving the responses. I can enter text no issue, but nothing is saved in the data file.

I am not sure what the issue could be so I have attached the .lss file so you can see what one aspect of my survey looks like and hopefully help with the bug.

File Attachment:

File Name: NIS_Test.lss
File Size:114 KB
Attachments:
The topic has been locked.
  • tpartner
  • tpartner's Avatar
  • Offline
  • LimeSurvey Community Team
  • LimeSurvey Community Team
More
5 years 7 months ago - 5 years 7 months ago #171915 by tpartner
Replied by tpartner on topic Array with large text fields
That's because you have changed the variable name "qComments" to "qReasons" in some places but not others, introducing a fatal JavaScript error when submitting the page.

Replace ALL instances of "qComments" with "qReasons".

Working survey attached:

File Attachment:

File Name: limesurvey...2281.lss
File Size:117 KB

Cheers,
Tony Partner

Solutions, code and workarounds presented in these forums are given without any warranty, implied or otherwise.
Last edit: 5 years 7 months ago by tpartner.
The following user(s) said Thank You: nique
The topic has been locked.
  • nique
  • nique's Avatar Topic Author
  • Offline
  • Junior Member
  • Junior Member
More
5 years 7 months ago #171942 by nique
Replied by nique on topic Array with large text fields
Ugh just that one line at the very end! My eyes clearly glazed over it.

Thanks for picking that up for me! Error corrected and noted for future.
The topic has been locked.

Lime-years ahead

Online-surveys for every purse and purpose