- Posts: 13597
- Thank you received: 2487
Welcome to the LimeSurvey Community Forum
Ask the community, share ideas, and connect with other LimeSurvey users!
Multiple question types in array modifiy
- DenisChenu
- Offline
- LimeSurvey Community Team
Less
More
12 years 2 months ago #73470
by DenisChenu
Assistance on LimeSurvey forum and LimeSurvey core development are on my free time.
I'm not a LimeSurvey GmbH member, professional service on demand , plugin development .
I don't answer to private message.
Replied by DenisChenu on topic Multiple question types in array modifiy
Seems to star rating system implemented for 5 point choice in yii, but it was very bad HTML rendered.
Assistance on LimeSurvey forum and LimeSurvey core development are on my free time.
I'm not a LimeSurvey GmbH member, professional service on demand , plugin development .
I don't answer to private message.
The topic has been locked.
- iosononando
- Offline
- New Member
Less
More
- Posts: 4
- Thank you received: 0
12 years 2 months ago #73503
by iosononando
Replied by iosononando on topic Multiple question types in array modifiy
This is fantastic!!! Thanks a lot!!!! I will put my hands on it right away!
The topic has been locked.
- Mazi
- Offline
- Official LimeSurvey Partner
12 years 2 months ago #73507
by Mazi
If our hints have been helpful and you enjoy limesurvey please consider a donation to the team .
We do all this in our free time and you don't have to pay a penny for this software.
Without your help we can't keep this project alive.
Best regards/Beste Grüße,
Dr. Marcel Minke
Need Help? We offer professional Limesurvey support: survey-consulting.com
Contact: marcel.minke(at)survey-consulting.com
Replied by Mazi on topic Multiple question types in array modifiy
You're welcomeiosononando wrote: This is fantastic!!! Thanks a lot!!!! I will put my hands on it right away!
If our hints have been helpful and you enjoy limesurvey please consider a donation to the team .
We do all this in our free time and you don't have to pay a penny for this software.
Without your help we can't keep this project alive.
Best regards/Beste Grüße,
Dr. Marcel Minke
Need Help? We offer professional Limesurvey support: survey-consulting.com
Contact: marcel.minke(at)survey-consulting.com
The topic has been locked.
- erregi
- Offline
- New Member
Less
More
- Posts: 3
- Thank you received: 0
12 years 1 month ago - 12 years 1 month ago #75086
by erregi
Replied by erregi on topic Multiple question types in array modifiy
Hi all,
i've just tried the " Multiple question type in array " workaround.
It works if the multiple questions is the first element, but not working if there are other questions before the table. (see the attachments)
i've tryed for hours a solution without success!
Thanks in advance for the support!
Working (table as first answer):
Not Working (table as second answer):
i've just tried the " Multiple question type in array " workaround.
It works if the multiple questions is the first element, but not working if there are other questions before the table. (see the attachments)
i've tryed for hours a solution without success!
Thanks in advance for the support!
Working (table as first answer):
Not Working (table as second answer):
Attachments:
Last edit: 12 years 1 month ago by erregi.
The topic has been locked.
- tpartner
- Offline
- LimeSurvey Community Team
Less
More
- Posts: 10099
- Thank you received: 3589
12 years 1 month ago #75112
by tpartner
Cheers,
Tony Partner
Solutions, code and workarounds presented in these forums are given without any warranty, implied or otherwise.
Replied by tpartner on topic Multiple question types in array modifiy
erregi, please attach a sample survey with that group and your JavaScript in it and I'll see if I can come up with a fix.
Cheers,
Tony Partner
Solutions, code and workarounds presented in these forums are given without any warranty, implied or otherwise.
The topic has been locked.
- erregi
- Offline
- New Member
Less
More
- Posts: 3
- Thank you received: 0
12 years 1 month ago #75148
by erregi
Replied by erregi on topic Multiple question types in array modifiy
please find attacched the survey.
The JS code is inside the question "0.1"
In this example i have only one question before the "table with questions" but i need to make it work in any position of a question group.
Thank You for your help!
The JS code is inside the question "0.1"
In this example i have only one question before the "table with questions" but i need to make it work in any position of a question group.
Thank You for your help!
Attachments:
The topic has been locked.
- tpartner
- Offline
- LimeSurvey Community Team
Less
More
- Posts: 10099
- Thank you received: 3589
12 years 1 month ago #75157
by tpartner
Cheers,
Tony Partner
Solutions, code and workarounds presented in these forums are given without any warranty, implied or otherwise.
Replied by tpartner on topic Multiple question types in array modifiy
Adding an parameter for the start question number should do the trick.
So, this:
Changes to this:
And, this:
Changes to this:
Then, calling the function if you have 2 questions before the "inline" questions (as in my sample survey below), this
Changes to this:
The complete script would be:
Here is your sample survey back with the modified code. I have added another question before the "inline" questions so the "inlines" star at question 3.
So, this:
Code:
function sideBySide(rows, columns) {
Code:
function sideBySide(rows, columns, startQuestion) {
And, this:
Code:
if(rowNum <= rows) {
Code:
if(rowNum <= rows && i >= startQuestion-1) {
Then, calling the function if you have 2 questions before the "inline" questions (as in my sample survey below), this
Code:
sideBySide(5, 5);
Code:
sideBySide(5, 5, 3);
The complete script would be:
Code:
<script type="text/javascript" charset="utf-8"> $(document).ready(function() { // Call the "sideBySide" function with number of rows, columns and the start question number sideBySide(5, 5, 3); }); function sideBySide(rows, columns, startQuestion) { /*********** Display multiple questions side by side ***********/ if ($('div.qRow1').length == 0) { var rowNum = 0; var colNum = 1; var rowList = new Array(); //////// Add question classes for later use //////// // Loop through all questions and add row and column specific classes $('div[id^="question"]').each(function(i) { /* This IF condition only needed if there are questions preceding or following the "inline" questions*/ if(rowNum <= rows && i >= startQuestion-1) { $(this).addClass('qRow'+rowNum+'').addClass('qCol'+colNum+'').addClass('inlineQuestion'); if(rowNum == 0 && colNum > 1) { $(this).addClass('columnLabel'); } if(rowNum > 0 && colNum == 1) { $(this).addClass('rowLabel'); } else if(rowNum > 0 && colNum > 1) { $(this).addClass('questionCell'); } if(colNum == columns) { rowList.push('qRow'+rowNum+''); rowNum++; colNum = 1; } else { colNum++; } } else { $(this).addClass('normalQuestion'); } }); //////// Survey layout manipulation //////// // Fix the width of the survey $('table.outerframe').css({ 'width': '900px' }); // Wrap each "row" in a wrapper div $(rowList).each(function(i) { $('.'+this+'').wrapAll('<div id="inlineWrapper'+i+'" class="inlineRow" />'); }); // Style the wrapper divs $('.inlineRow').css({ 'width': '850px', 'margin': '0 auto 0 auto', 'clear': 'both' }); $( '.inlineRow:first' ).css({ 'margin-top': '10px' }); // Get all the questions to sit politely side by side $( '.inlineQuestion' ).css({ 'float': 'left', 'height':'41px', 'overflow':'hidden', 'margin-bottom': '-5px' }); $( '.inlineQuestion .questionhelp' ).hide(); $( '.inlineQuestion .survey-question-help' ).parent().hide(); // A little space under the last row $( '.inlineRow:last .inlineQuestion' ).css({ 'margin-bottom': '10px' }); /* Any questions not displayed inline (this is only needed if there are questions following the "inline" questions)*/ $( '.normalQuestion' ).css({ 'clear': 'both' }); //////// Column manipulation //////// // Set the column widths - can be set individually if necessary // Must add up to less than 100% $( '.qCol1' ).css({ 'width': '12%' }); $( '.qCol2, .qCol3, .qCol4, .qCol5' ).css({ 'width': '22%' }); //////// Question manipulation //////// // Hide the answer element in boilerplate questions $( 'div.boilerplate td.answer' ).parent().hide(); // Hide the question text elements in non-boilerplate questions $('div.questionCell td.questiontext').parent().hide(); // Push the question tables to 100% $( 'div.inlineRow table' ).css({ 'width': '100%' }); // Get everything to line up nicely vertically $( '.inlineQuestion td.questiontext, .inlineQuestion td.answer p' ).css({ 'text-align': 'center' }); // Adjust cell heights so everything lines up nicely horizontally $( '.inlineQuestion td.answer, .inlineQuestion td.questiontext' ).css({ 'height':'35px', 'overflow':'hidden', 'padding':'0.5em' }); $( '#inlineWrapper0 .inlineQuestion' ).css({ 'height':'50px' }); $( '#inlineWrapper0 td.questiontext' ).css({ 'height':'50px' }); // Yes-no question styles $( 'div.yes-no ul' ).css({ 'text-align': 'center', 'font-size': '90%', 'margin': '0', 'padding-bottom': '5px' }); $( 'div.yes-no li' ).css({ 'padding-right': '1.5em' }); $( 'div.yes-no td.answer' ).css({ 'padding-bottom': '0' }); // Short-text question styles $( 'div.text-short input' ).css({ 'width': '125px', 'margin-left': '0' }); // Numeric question styles $( 'div.numeric input' ).css({ 'width': '125px', 'margin-left': '0' }); $( 'div.numeric p.tip' ).css({ 'display': 'none' }); // Get rid of the margins around select boxes $( 'p.question' ).css({ 'margin':'0' }); } } </script>
Here is your sample survey back with the modified code. I have added another question before the "inline" questions so the "inlines" star at question 3.
Cheers,
Tony Partner
Solutions, code and workarounds presented in these forums are given without any warranty, implied or otherwise.
Attachments:
The following user(s) said Thank You: erregi
The topic has been locked.
- erregi
- Offline
- New Member
Less
More
- Posts: 3
- Thank you received: 0
12 years 1 month ago #75160
by erregi
Replied by erregi on topic Multiple question types in array modifiy
the script works if you have other questions BEFORE "the grid" but it doesn't work if you have other questions after it.
I made a new example with those elements(see the attachment):
2 questions
Grid with questions
2 questions
Thanks again for your Help!
I made a new example with those elements(see the attachment):
2 questions
Grid with questions
2 questions
Thanks again for your Help!
Attachments:
The topic has been locked.
- tpartner
- Offline
- LimeSurvey Community Team
Less
More
- Posts: 10099
- Thank you received: 3589
12 years 1 month ago #75161
by tpartner
Cheers,
Tony Partner
Solutions, code and workarounds presented in these forums are given without any warranty, implied or otherwise.
Replied by tpartner on topic Multiple question types in array modifiy
Change this line:
To this:
Code:
if(rowNum <= rows && i >= startQuestion-1) {
To this:
Code:
if(rowNum <= rows-1 && i >= startQuestion-1) {
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: erregi
The topic has been locked.
- barbarian
- Offline
- New Member
Less
More
- Posts: 3
- Thank you received: 0
12 years 4 days ago - 12 years 4 days ago #78609
by barbarian
Replied by barbarian on topic Aw: Re:Multiple question types in array modifiy
Hello!
I want to place one "short text question" and one "array" question (with four radio buttons) side-by-side, like Tpartner explained. But it doesn´t work for me, means it has no effect.
Maybe someone can help me please.
Using 1.92+
I want to place one "short text question" and one "array" question (with four radio buttons) side-by-side, like Tpartner explained. But it doesn´t work for me, means it has no effect.
Code:
<script type="text/javascript" charset="utf-8"> $(document).ready(function() { var qText = 18a; var qArray = 18b; // Fix the width of the survey $( 'table.outerframe' ).css({'width': '900px'}); // Wrap the 2 questions in a container div and style it $('#question'+qText+', #question'+qArray+'').wrapAll('<div class="inlineWrapper" />'); $('.inlineWrapper').append('<div style="clear:both" />'); $('.inlineWrapper').css({ 'width': '75%', 'margin':'0 auto 10px auto', 'background-color':'#FFFFFF' }); $('.inlineWrapper *').css({ 'padding': '0', 'margin':'0' }); // Hide the question and the help text $('#question'+qText+' td.questiontext, #question'+qArray+' td.questiontext').parent().hide(); $('#question'+qText+' > table:eq(1), #question'+qArray+' > table:eq(1)').hide(); $('#question'+qText+' td.survey-question-help, #question'+qArray+' td.survey-question-help').parent().hide(); //Hide the answer cell of the array $('#question'+qArray+' table.question thead tr').children(":first").hide(); $('#question'+qArray+' table.question tbody tr').children(":first").hide(); $('#question'+qArray+' col').attr('width', ''); // Push all question tables to 100% $('#question'+qText+' table, #question'+qArray+' table').css({'width': '100%'}); // Get the 2 questions to sit politely side by side $('#question'+qText+', #question'+qArray+'').css({'float':'left'}); $('#question'+qText+'').css({'padding':'15px 0 5px 25px'}); $('#question'+qText+'').css({'padding-top':'27px'}); // Adjust here for wrapped array labels $('#question'+qArray+'').css({'padding':'5px 0 10px 0'}); $('#question'+qArray+' table.question td').css({'padding':'4px'}); $('#question'+qText+' table:first').attr('align', 'left'); $('#question'+qText+' label').css({ 'display':'inline', 'width':'auto', 'margin-right':'10px' }); // Set the widths of the 2 questions $('#question'+qText+'').css({'width': '35%'}); $('#question'+qArray+'').css({'width': '58%'}); }); </script>
Using 1.92+
Last edit: 12 years 4 days ago by barbarian.
The topic has been locked.
- Mazi
- Offline
- Official LimeSurvey Partner
12 years 4 days ago #78614
by Mazi
Best regards/Beste Grüße,
Dr. Marcel Minke
Need Help? We offer professional Limesurvey support: survey-consulting.com
Contact: marcel.minke(at)survey-consulting.com
Replied by Mazi on topic Aw: Re:Multiple question types in array modifiy
Please tell us which template you are using and post a link to a sample survey.
Best regards/Beste Grüße,
Dr. Marcel Minke
Need Help? We offer professional Limesurvey support: survey-consulting.com
Contact: marcel.minke(at)survey-consulting.com
The topic has been locked.
- barbarian
- Offline
- New Member
Less
More
- Posts: 3
- Thank you received: 0
12 years 4 days ago #78628
by barbarian
Replied by barbarian on topic Aw: Re: Aw: Re:Multiple question types in array modifiy
Hey!
test-survey
test
key:test
It´s the default-Template, language is german
The questions 18 and 19 shall be side-by-side
Thanks for your answer:-)
test-survey
test
key:test
It´s the default-Template, language is german
The questions 18 and 19 shall be side-by-side
Thanks for your answer:-)
The topic has been locked.