Welcome to the LimeSurvey Community Forum

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

Dual Scale Array to Multiple Scale Array Possibility?

  • tpartner
  • tpartner's Avatar
  • Offline
  • LimeSurvey Community Team
  • LimeSurvey Community Team
More
12 years 1 week ago - 12 years 1 week ago #76888 by tpartner
You need to use the question code, not the question ID:




Try this survey:

File Attachment:

File Name: limesurvey...2571.lss
File Size:92 KB

Cheers,
Tony Partner

Solutions, code and workarounds presented in these forums are given without any warranty, implied or otherwise.
Last edit: 12 years 1 week ago by tpartner.
The following user(s) said Thank You: Newbeedu
The topic has been locked.
  • Newbeedu
  • Newbeedu's Avatar Topic Author
  • Offline
  • New Member
  • New Member
More
12 years 1 week ago #76949 by Newbeedu
Hi Again,

I am having 2 different matrix on a single page, as in 10 items rated on 3 parameters in one and 10 items rated on 4 other parameters again.

If i put these two question in a same question group, then everything is coming together.

Would it be possible to have it is 2 separate questions?
The topic has been locked.
  • tpartner
  • tpartner's Avatar
  • Offline
  • LimeSurvey Community Team
  • LimeSurvey Community Team
More
12 years 1 week ago #76950 by tpartner
Hmm...that's a little trickier. Can you attach a sample survey?

Cheers,
Tony Partner

Solutions, code and workarounds presented in these forums are given without any warranty, implied or otherwise.
The topic has been locked.
  • Newbeedu
  • Newbeedu's Avatar Topic Author
  • Offline
  • New Member
  • New Member
More
12 years 1 week ago #76955 by Newbeedu
I have attached a sample survey.

In page 2 all 7 parameters are listed in one line, where in i want the last 4 to be listed below the second question (like in page 3).

Pls Help.
The topic has been locked.
  • tpartner
  • tpartner's Avatar
  • Offline
  • LimeSurvey Community Team
  • LimeSurvey Community Team
More
12 years 1 week ago #76966 by tpartner
A note before we go any farther: You must not use the "Random answer order" setting for these array questions.

I wrapped everything in a function that you need to call with the start and end question numbers. So, in the case of your sample survey where you want questions 2-4 inline and then questions 6-9 inline, you would call the function twice:
Code:
    sideBySide(2, 4);
    sideBySide(6, 9);

The complete code for your survey:
Code:
<script type="text/javascript" charset="utf-8">
 
  $(document).ready(function() {
 
    sideBySide(2, 4);
    sideBySide(6, 9);
 
    function sideBySide(start, end) {
 
      // Add some temporary classes to the target questions
      $('div[id^="question"]').each(function(i){
        var qNum = i + 1;
        var el = $(this);
        if (qNum >= start &amp;&amp; qNum <= end) {
          $(el).addClass('targetQ');
        }
      });
 
      // Wrap the questions in a div
      $('.targetQ').wrapAll('<div class="targetWrapper" />');
      $('.targetWrapper').after('<div style="clear:both" />');
 
      // Add some classes to the questions in the target wrapper
      $('.targetWrapper .targetQ').addClass('inlineQuestion inlineQuestionSub');
      $('.targetWrapper .inlineQuestionSub:first').removeClass('inlineQuestionSub').addClass('inlineQuestionPrime');
 
      // Remove the text from the secondary questions
      $('.targetWrapper .inlineQuestionSub th.answertext').text('');
 
      // Apply some styles (these are for the default template)
      $('.targetWrapper .inlineQuestion').css({ 'float': 'left' });
      $('.targetWrapper .inlineQuestion col, .targetWrapper .inlineQuestion th.answertext').css({ 'width': 'auto' });
      $('.targetWrapper .inlineQuestion .question-wrapper').css({ 'width': '100%' });
      $('.targetWrapper .inlineQuestion td.answer').css({ 'padding': '0.5em 0' });
      $('.targetWrapper .inlineQuestion td.questiontext').css({ 'text-align': 'center' });
 
      // Center the wrapper div
      var wrapperWidth = 0;
      $('.targetWrapper .inlineQuestion').each(function(i){ 
        wrapperWidth = wrapperWidth + $(this).width();
        var padLeft = $('.answertext:eq(0)', this).width() + 3;
        $('.questiontext', this).css({ 'padding-left':padLeft+'px', 'padding-right':'3px' });
      });
      $('.targetWrapper').css({ 'width':wrapperWidth+'px', 'margin': '0 auto' });
 
      // Set the row heights
      var wrapperWidth = 0;
      $('.targetWrapper .inlineQuestionSub').each(function(i){
        $('tbody[id^="javatbd"]', this).each(function(i){ 
          var ansHeight = $('.targetWrapper .inlineQuestionPrime th.answertext:eq('+i+')').innerHeight();
 
          if($.browser.mozilla) {
            $('th.answertext', this).height(ansHeight-1);
          }
          else {
            $('th.answertext', this).innerHeight(ansHeight);
          }
        });
      });
 
      // Remove the temporary classes
      $('.targetQ').removeClass('targetQ');
      $('.targetWrapper').removeClass('targetWrapper');
    }
  });
 
</script>

And the survey with the code in the source of the first array:

File Attachment:

File Name: limesurvey...2322.lss
File Size:70 KB

Cheers,
Tony Partner

Solutions, code and workarounds presented in these forums are given without any warranty, implied or otherwise.
The following user(s) said Thank You: Newbeedu
The topic has been locked.
More
11 years 11 months ago #78054 by DianaS7
Hi Tony,

My name is Diana, I Want to do an array with 3 different scales. I saw your posts and I tried to reproduce it on my computer. But I can´t do it.
I created 3 different arrays with the same number of rows.I edited one of the question and clicked the "Source" button and then I copied the script that you posted e saved the page. But nothing happened.
I don´t know if I can just copy the script or if I have to do something else.

I hope you can help me.

On the image attached you can see what I need to do.

Thanks
The topic has been locked.
  • tpartner
  • tpartner's Avatar
  • Offline
  • LimeSurvey Community Team
  • LimeSurvey Community Team
More
11 years 11 months ago #78057 by tpartner
Hi Diana,

Did you disable the XSS filter?

Can you activate a sample survey for me to see?

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 11 months ago #78103 by DianaS7
Hi Tony,

Thanks for the response. I disable the XSS filter but it´s still not working. I´ve activated an example. As you can see in here:

dianas.limequery.com/index.php?sid=57517...oken=yscfhdxdyd7cy85

In the attachment, you can see what I want to do with the 3 tables that i've put on the survey.

Thanks for the help.

Diana
The topic has been locked.
  • tpartner
  • tpartner's Avatar
  • Offline
  • LimeSurvey Community Team
  • LimeSurvey Community Team
More
11 years 11 months ago #78105 by tpartner
I don't see the JavaScript in the sample survey. Did you add it?

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 11 months ago #78118 by DianaS7
I´m sorry,

Here it is:

dianas.limequery.com/index.php?sid=57517&newtest=Y&lang=en

As you can see i´ve putted the jaba code in the first question.

Thanks,

Diana
The topic has been locked.
  • tpartner
  • tpartner's Avatar
  • Offline
  • LimeSurvey Community Team
  • LimeSurvey Community Team
More
11 years 11 months ago #78122 by tpartner
It doesn't look like you disabled the XSS filter or didn't put the script in the source of the question (you should not be able to see the script when viewing the survey). Additionally, it doesn't look like you are using the latest version of the script.

1) Set up your survey to use JavaScript .

2) Add the following script to the source of the first array.
Code:
<script type="text/javascript" charset="utf-8">
 
  $(document).ready(function() {
 
    // Call the function wit the start and end question positions
    sideBySide(1, 3);
 
    function sideBySide(start, end) {
 
      // Add some temporary classes to the target questions
      $('div[id^="question"]').each(function(i){
        var qNum = i + 1;
        var el = $(this);
        if (qNum >= start &amp;&amp; qNum <= end) {
          $(el).addClass('targetQ');
        }
      });
 
      // Wrap the questions in a div
      $('.targetQ').wrapAll('<div class="targetWrapper" />');
      $('.targetWrapper').after('<div style="clear:both" />');
 
      // Add some classes to the questions in the target wrapper
      $('.targetWrapper .targetQ').addClass('inlineQuestion inlineQuestionSub');
      $('.targetWrapper .inlineQuestionSub:first').removeClass('inlineQuestionSub').addClass('inlineQuestionPrime');
 
      // Remove the text from the secondary questions
      $('.targetWrapper .inlineQuestionSub th.answertext').text('');
 
      // Apply some styles (these are for the default template)
      $('.targetWrapper .inlineQuestion').css({ 'float': 'left' });
      $('.targetWrapper .inlineQuestion col, .targetWrapper .inlineQuestion th.answertext').css({ 'width': 'auto' });
      $('.targetWrapper .inlineQuestion .question-wrapper').css({ 'width': '100%' });
      $('.targetWrapper .inlineQuestion td.answer').css({ 'padding': '0.5em 0' });
      $('.targetWrapper .inlineQuestion td.questiontext').css({ 'text-align': 'center' });
 
      // Center the wrapper div
      var wrapperWidth = 0;
      $('.targetWrapper .inlineQuestion').each(function(i){ 
        wrapperWidth = wrapperWidth + $(this).width();
        var padLeft = $('.answertext:eq(0)', this).width() + 3;
        $('.questiontext', this).css({ 'padding-left':padLeft+'px', 'padding-right':'3px' });
      });
      $('.targetWrapper').css({ 'width':wrapperWidth+'px', 'margin': '0 auto' });
 
      // Set the row heights
      var wrapperWidth = 0;
      $('.targetWrapper .inlineQuestionSub').each(function(i){
        $('tbody[id^="javatbd"]', this).each(function(i){ 
          var ansHeight = $('.targetWrapper .inlineQuestionPrime th.answertext:eq('+i+')').innerHeight();
 
          if($.browser.mozilla) {
            $('th.answertext', this).height(ansHeight-1);
          }
          else {
            $('th.answertext', this).innerHeight(ansHeight);
          }
        });
      });
 
      // Remove the temporary classes
      $('.targetQ').removeClass('targetQ');
      $('.targetWrapper').removeClass('targetWrapper');
    }
  });
 
</script>

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 11 months ago #78132 by DianaS7
Thanks Tony for the help, but I don´t know why, but I can´t do it.

I disable the XSS filter. I went to Internet Options - Security - Custom Level of the Internet, and then I changed the XXS to disable.

After, I copied the new scrip that you gave me to the source of the Question 1 field. But like before, when I´m viewing the survey I can see the sript.

I think it may be something about the Jabascript, because, when I do the teste to see if JavaScript is enabled (Set up your survey to use JavaScript), the same happens, I can see the Test Script when I´m viewing the survey)

But, you did everything you could, thank you so much for the big help.

Diana
The topic has been locked.

Lime-years ahead

Online-surveys for every purse and purpose