Welcome, Guest
Username: Password: Remember me

TOPIC: Using previous Array question responses to set following Array subquestions

Re: Using previous Array question responses to set following Array subquestions 2 years 11 months ago #66052

  • Maximilien
  • Maximilien's Avatar
  • OFFLINE
  • Fresh Lemon
  • Posts: 12
  • Karma: 0
Thanks Shnoulle, it worked !
I set up two listeners : one on the cell and one on the checkbox (using your code).

About the radio button Tony, I couldn't do that, I need to have checkboxes. It's an Array (Numbers) with a checkbox layout.

Another thing if you have some time (though it's not really important) :
I have Q1 which is this Array of checkboxes and Q2 which is another array depending on the results of the second column of Q1.
So Q2 rows only show when the equivalent row in Q1 column 2 is selected.
I used the following javascript code to get it to work using an hidden Multiple Options question.
<script type="text/javascript" charset="utf-8">
	$(document).ready(function() {
 
		// Call the function
		// Params - Q1 ID, Q2 ID, Hidden question ID
		countChecked(529, 664, 4059);
 
		function countChecked(q1ID, q2ID, qHiddenID) {
 
			// Hide the hidden question
			$('#question'+qHiddenID+'').hide();
 
			// Find the survey and group IDs
			if($('input#fieldnames').length != 0) {
				var fieldNames = $('input#fieldnames').attr('value');
				var tmp = fieldNames.split('X');
				var sID = tmp[0];
				var gID = tmp[1];
			}
 
			// A listener on the 2nd of Q1 radio buttons 
			$('#question'+q1ID+' td.answer_cell_002').click(function () { 
				// Check the corresponding option in the hidden question
				var rowID = $(this).parents('tbody:eq(0)').attr('id');
				var tmp2 = rowID.split('X'+q1ID);
				var answerCode = tmp2[1];
				$('#answer'+sID+'X'+gID+'X'+qHiddenID+answerCode).attr('checked', true);
 
				// Fire the conditions function to show the corresponding row in Q2
				var hiddenInputValue = $('#answer'+sID+'X'+gID+'X'+qHiddenID+answerCode).attr('value');
				var hiddenInputName = $('#answer'+sID+'X'+gID+'X'+qHiddenID+answerCode).attr('name');
				var hiddenInputType = $('#answer'+sID+'X'+gID+'X'+qHiddenID+answerCode).attr('type');
				checkconditions(hiddenInputValue, hiddenInputName, hiddenInputType)
			});
 
			$('#question'+q1ID+' td.answer_cell_002, #question'+q1ID+' td.answer_cell_002 input:checkbox').click(function () { 
				// Check the corresponding option in the hidden question
				var rowID = $(this).parents('tbody:eq(0)').attr('id');
				var tmp2 = rowID.split('X'+q1ID);
				var answerCode = tmp2[1];
				$('#answer'+sID+'X'+gID+'X'+qHiddenID+answerCode).attr('checked', true);
 
				// Fire the conditions function to show the corresponding row in Q2
				var hiddenInputValue = $('#answer'+sID+'X'+gID+'X'+qHiddenID+answerCode).attr('value');
				var hiddenInputName = $('#answer'+sID+'X'+gID+'X'+qHiddenID+answerCode).attr('name');
				var hiddenInputType = $('#answer'+sID+'X'+gID+'X'+qHiddenID+answerCode).attr('type');
				checkconditions(hiddenInputValue, hiddenInputName, hiddenInputType)
			});
 
		}
 
	});
 
</script>

It works fine when the user checks a box in Q1 column2 : it displays the line in Q2. But
I would have liked to have some kind of toggle : if the user uncheck a box in column 2 of Q1 it should hide the correspondant row in Q2.
I tried this code that fails (it doesn't do anything - display or hide - but I can't understand why !) :
<script type="text/javascript" charset="utf-8">
	$(document).ready(function() {
 
		// Call the function
		// Params - Q1 ID, Q2 ID, Hidden question ID
		countChecked(529, 664, 4059);
 
		function countChecked(q1ID, q2ID, qHiddenID) {
 
			// Hide the hidden question
			$('#question'+qHiddenID+'').hide();
 
			// Find the survey and group IDs
			if($('input#fieldnames').length != 0) {
				var fieldNames = $('input#fieldnames').attr('value');
				var tmp = fieldNames.split('X');
				var sID = tmp[0];
				var gID = tmp[1];
			}
 
			// A listener on the 2nd of Q1 radio buttons 
			$('#question'+q1ID+' td.answer_cell_002').click(function () { 
				// Check the corresponding option in the hidden question
				var rowID = $(this).parents('tbody:eq(0)').attr('id');
				var tmp2 = rowID.split('X'+q1ID);
				var answerCode = tmp2[1];
        if ($('#answer'+sID+'X'+gID+'X'+qHiddenID+answerCode).attr('checked') == true) {
				  $('#answer'+sID+'X'+gID+'X'+qHiddenID+answerCode).attr('checked', false)
				} else {
				  $('#answer'+sID+'X'+gID+'X'+qHiddenID+answerCode).attr('checked', true)
				} 
				// Fire the conditions function to show the corresponding row in Q2
				var hiddenInputValue = $('#answer'+sID+'X'+gID+'X'+qHiddenID+answerCode).attr('value');
				var hiddenInputName = $('#answer'+sID+'X'+gID+'X'+qHiddenID+answerCode).attr('name');
				var hiddenInputType = $('#answer'+sID+'X'+gID+'X'+qHiddenID+answerCode).attr('type');
				checkconditions(hiddenInputValue, hiddenInputName, hiddenInputType)
			});
 
			$('#question'+q1ID+' td.answer_cell_002, #question'+q1ID+' td.answer_cell_002 input:checkbox').click(function () { 
				// Check the corresponding option in the hidden question
				var rowID = $(this).parents('tbody:eq(0)').attr('id');
				var tmp2 = rowID.split('X'+q1ID);
				var answerCode = tmp2[1];
        if ($('#answer'+sID+'X'+gID+'X'+qHiddenID+answerCode).attr('checked') == true) {
				  $('#answer'+sID+'X'+gID+'X'+qHiddenID+answerCode).attr('checked', false)
				} else {
				  $('#answer'+sID+'X'+gID+'X'+qHiddenID+answerCode).attr('checked', true)
				}
 
				// Fire the conditions function to show the corresponding row in Q2
				var hiddenInputValue = $('#answer'+sID+'X'+gID+'X'+qHiddenID+answerCode).attr('value');
				var hiddenInputName = $('#answer'+sID+'X'+gID+'X'+qHiddenID+answerCode).attr('name');
				var hiddenInputType = $('#answer'+sID+'X'+gID+'X'+qHiddenID+answerCode).attr('type');
				checkconditions(hiddenInputValue, hiddenInputName, hiddenInputType)
			});
 
		}
 
	});
 
</script>

If you have any idea why it fails... ;-)
The administrator has disabled public write access.

Re: Using previous Array question responses to set following Array subquestions 2 years 11 months ago #66090

  • tpartner
  • tpartner's Avatar
  • OFFLINE
  • LimeSurvey Team
  • Posts: 4127
  • Thank you received: 761
  • Karma: 347
A couple of things:

1) You don't need the first listener - selectors for the cell and input elements are both included in the second listener.

2) There is a logic problem with the IF statement.

This is untested but try:
<script type="text/javascript" charset="utf-8">
	$(document).ready(function() {
 
		// Call the function
		// Params - Q1 ID, Q2 ID, Hidden question ID
		countChecked(529, 664, 4059);
 
		function countChecked(q1ID, q2ID, qHiddenID) {
 
			// Hide the hidden question
			$('#question'+qHiddenID+'').hide();
 
			// Find the survey and group IDs
			if($('input#fieldnames').length != 0) {
				var fieldNames = $('input#fieldnames').attr('value');
				var tmp = fieldNames.split('X');
				var sID = tmp[0];
				var gID = tmp[1];
			}
 
			$('#question'+q1ID+' td.answer_cell_002, #question'+q1ID+' td.answer_cell_002 input:checkbox').click(function () { 
				// Check the corresponding option in the hidden question
				var parentRow = $(this).parents('tbody:eq(0)');
				var rowID = $(this).parents('tbody:eq(0)').attr('id');
				var tmp2 = rowID.split('X'+q1ID);
				var answerCode = tmp2[1];
				if ($('td.answer_cell_002 input:checkbox', parentRow).attr('checked') == true) {
					$('#answer'+sID+'X'+gID+'X'+qHiddenID+answerCode).attr('checked', true)
				} else {
					$('#answer'+sID+'X'+gID+'X'+qHiddenID+answerCode).attr('checked', false)
				}
 
				// Fire the conditions function to show the corresponding row in Q2
				var hiddenInputValue = $('#answer'+sID+'X'+gID+'X'+qHiddenID+answerCode).attr('value');
				var hiddenInputName = $('#answer'+sID+'X'+gID+'X'+qHiddenID+answerCode).attr('name');
				var hiddenInputType = $('#answer'+sID+'X'+gID+'X'+qHiddenID+answerCode).attr('type');
				checkconditions(hiddenInputValue, hiddenInputName, hiddenInputType)
			});
 
		}
 
	});
 
</script>
Cheers,
Tony Partner

Solutions, code and workarounds presented in these forums are given without any warranty, implied or otherwise.

LimeSurvey is open-source and run entirely by volunteers so please consider donating to support the project.
Last Edit: 2 years 11 months ago by tpartner.
The administrator has disabled public write access.
The following user(s) said Thank You: Maximilien

Re: Using previous Array question responses to set following Array subquestions 2 years 11 months ago #66177

  • Maximilien
  • Maximilien's Avatar
  • OFFLINE
  • Fresh Lemon
  • Posts: 12
  • Karma: 0
Great Tony, Thanks ! I tested it and it works well.

I didn't see the logic problem, I guess I got lost in my toggle logic... Thank you very much for raising that !
The administrator has disabled public write access.

Re: Using previous Array question responses to set following Array subquestions 2 years 11 months ago #66178

  • Mazi
  • Mazi's Avatar
  • OFFLINE
  • LimeSurvey Team
  • Posts: 5324
  • Thank you received: 294
  • Karma: 248
You're welcome!

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
(Limesurvey Head of Support)
Need Help? We offer professional Limesurvey support
Contact: marcel.minke(at)limesurvey.org'"
The administrator has disabled public write access.

Re: Using previous Array question responses to set following Array subquestions 1 year 3 months ago #96315

  • StuTheQ
  • StuTheQ's Avatar
  • OFFLINE
  • Junior Lime
  • Posts: 26
  • Karma: 0
Dear Tony,

Well, it only took me two years and two months to read your instructions and get round to implementing the JavaScript code that you gave me…!! :blush: (cf. your posts #58058, #58059 and my last reply #58062)

Seriously, I thought I was getting a bit out of my depth at that point and, given a number of other work and study issues that I had to sort out at the time, decided to come back to my LimeSurvey project when I could give it my full attention.

So, I’m back and 100% determined to get my LimeSurvey “Language needs analysis” up-and-running!! You’ve already given me a lot of your valuable time, Tony, but could I ask you just to help me out again with one or two issues? (hopefully you’ll see that I’m not wasting your time here).

I read to the end of the thread but think that MaLu’s case is the closest to mine, hence my new post just before her (final success) post #62558 (I've just seen that my new post has in fact been placed at the end of the thread...).

I’m now fully upgraded and running LimeSurvey 2.00+.

I set up a simple survey (‘Test’, file attached), with just one Question Group (file attached), to implement your JavaScript workaround (I checked to see if JavaScript was enabled: ‘Alert’ echo = OK)

In Question Group 1, I set up:
  • Q1 (an Array question with three answers (‘N/A’, ‘Important’ and ‘Priority) and four subquestions) (file attached)
  • qHidden (a Multiple Option question with the same four subquestions) (file attached)
  • Q2 (an Array question with five answers (‘I can’t’, ‘I can’t very well’, ‘I can’, ‘I can quite well’ and ‘I can very well’) and the same four subquestions) (file attached)
As per your instructions, Q2 has conditions so it is only shown if any option in qHidden is checked. Q2 also has a filter array so that only the subquestions checked in qHidden subsequently appear.

I previewed the questions individually and ran the survey and everything seemed to be OK. Time for the JavaScript code!

As you mentioned some previous edit errors (spaces and quotes) in your post #62555, I carefully copied and pasted the ‘definitive’JavaScript code that you gave to MaLu into the qHidden source (JavaScript code in .txt file attached)
<script type="text/javascript" charset="utf-8">
 
	$(document).ready(function() { 
 
		// Call the function
		// Params - Q1 ID, Q2 ID, Hidden question ID
		countChecked(143, 158, 153);
 
		function countChecked(q1ID, q2ID, qHiddenID) {
 
			// Hide the hidden question
			$('#question'+qHiddenID+'').hide();
 
			// Find the survey and group IDs
			if($('input#fieldnames').length != 0) {
				var fieldNames = $('input#fieldnames').attr('value');
				var tmp = fieldNames.split('X');
				var sID = tmp[0];
				var gID = tmp[1];
			}
 
			// A listener on the 1st column of Q1 radio buttons 
			$('#question'+q1ID+' td.answer_cell_001').click(function () { 
 
				// Uncheck the corresponding option in the hidden question
				var rowID = $(this).parents('tbody:eq(0)').attr('id');
				var tmp2 = rowID.split('X'+q1ID);
				var answerCode = tmp2[1];
				$('#answer'+sID+'X'+gID+'X'+qHiddenID+answerCode).attr('checked', false);
 
				// Fire the conditions function to hide the corresponding row in Q2
				var hiddenInputValue = $('#answer'+sID+'X'+gID+'X'+qHiddenID+answerCode).attr('value');
				var hiddenInputName = $('#answer'+sID+'X'+gID+'X'+qHiddenID+answerCode).attr('name');
				var hiddenInputType = $('#answer'+sID+'X'+gID+'X'+qHiddenID+answerCode).attr('type');
				checkconditions(hiddenInputValue, hiddenInputName, hiddenInputType)
			});
 
			// A listener on the 2nd and 3rd columns of Q1 radio buttons 
			$('#question'+q1ID+' td.answer_cell_002, #question'+q1ID+' td.answer_cell_003').click(function () { 
 
				// Check the corresponding option in the hidden question
				var rowID = $(this).parents('tbody:eq(0)').attr('id');
				var tmp2 = rowID.split('X'+q1ID);
				var answerCode = tmp2[1];
				$('#answer'+sID+'X'+gID+'X'+qHiddenID+answerCode).attr('checked', true);
 
				// Fire the conditions function to show the corresponding row in Q2
				var hiddenInputValue = $('#answer'+sID+'X'+gID+'X'+qHiddenID+answerCode).attr('value');
				var hiddenInputName = $('#answer'+sID+'X'+gID+'X'+qHiddenID+answerCode).attr('name');
				var hiddenInputType = $('#answer'+sID+'X'+gID+'X'+qHiddenID+answerCode).attr('type');
				checkconditions(hiddenInputValue, hiddenInputName, hiddenInputType)
			});
		}
 
	});
 
</script>
I then replaced MaLu’s question IDs with those from my ‘Test’ survey, double-checking to make sure that they were right (cf. your comment about common errors).

No joy. qHidden was hidden but Q2 was not activated. I removed the ‘Hide the hidden question’ JavaScript code to see if the checkboxes in qHidden were being checked. qHidden appeared but no checkboxes were checked.

Reading your post #62539, I then thought that, with version 2.00+, it might be necessary to replace the original answer cell codes (‘001’, ‘002’, ‘003’) with ‘00A1’, ‘00A2’ and ‘00A3’, like in MaLu’s case, but, once again, no joy.

I’ve checked everything (at least I think so!) a number of times now but I really can’t see where the problem lies. Although I now understand the function of the JavaScript code, I lack the IT knowledge necessary to see if something has been deleted/omitted/displaced etc.

Please could you have a quick look at my efforts to see where I’m going wrong? (the ‘Test’ survey is not activated; do you need me to activate it?)

Thanks a million in advance!

Regards,

StuTheQ (tenacious, if nothing else..!! :) )

PS If you’re wondering why my question IDs are Q1:143, Q2:158 and qHidden:153, it’s because I deleted Q2 and then created it again just before writing this post.
Last Edit: 1 year 3 months ago by StuTheQ.
The administrator has disabled public write access.

Re: Using previous Array question responses to set following Array subquestions 1 year 3 months ago #96318

  • tpartner
  • tpartner's Avatar
  • OFFLINE
  • LimeSurvey Team
  • Posts: 4127
  • Thank you received: 761
  • Karma: 347
I've updated the script to include the following features:
- Automatically identify the questions as long as the script is placed in the source of the hidden question and that question is between the two arrays
- Assign column-specific classes to the first array to make it easier to identify the "trigger" columns
- Aggregate the listener code into a common function
- Fix up the q2 row background colours after firing the check conditions function

<script type="text/javascript" charset="utf-8">	
	$(document).ready(function() { 
 
		// Call the function
		countChecked('{SGQ}');
 
		function countChecked(sgq) {
			// Identify the questions
			var sID = sgq.split('X')[0];
			var gID = sgq.split('X')[1];
			var qHiddenID = sgq.split('X')[2];
			var qHidden = $('#question'+qHiddenID+'');
			if($(qHidden).length > 0) {
				var q1 = $(qHidden).prevAll('.array-flexible-row:eq(0)'); 
				var q1ID = $(q1).attr('id').split('question')[1];
				var q2 = $(qHidden).nextAll('.array-flexible-row:eq(0)'); 
				var q2ID = $(q2).attr('id').split('question')[1];
			}
 
			// Hide the hidden question
			$('#question'+qHiddenID+'').hide();
 
			// Assign column-specific classes to Q1
			$('.answers-list', q1).each(function(i){
				$('td.answer-item', this).each(function(i){
					$(this).addClass('answer-column-'+(i+1)+'');
				});
			});
 
			// A listener on the 1st column of Q1 radio buttons 
			$('.answer-column-1', q1).click(function () { 
				handleHiddenInput (this, 'unchecked');
			});
 
			// A listener on the 2nd and 3rd columns of Q1 radio buttons 
			$('.answer-column-2, .answer-column-3', q1).click(function () {
				handleHiddenInput (this, 'checked');
			});
 
			// A function to toggle the hidden checkboxes 
			function handleHiddenInput(trigger, state) {
				// Identify some stuff
				var rowID = $(trigger).closest('tr.answers-list').attr('id');
				var tmp = rowID.split('X'+q1ID);
				var answerCode = tmp[1];
				var hiddenInput = $('#answer'+sID+'X'+gID+'X'+qHiddenID+answerCode); 
 
				// Toggle the input depending on "state"
				var checkedState = false;
				if(state == 'checked') {
					checkedState = true;
				}
				$(hiddenInput).attr('checked', checkedState);
 
				// Fire the conditions function to hide the corresponding row in Q2
				var hiddenInputValue = $(hiddenInput).attr('value');
				var hiddenInputName = $(hiddenInput).attr('name');
				var hiddenInputType = $(hiddenInput).attr('type');
				checkconditions(hiddenInputValue, hiddenInputName, hiddenInputType);
 
				// Fix up the q2 row background colours
				$('.answers-list:visible', q2).each(function(i, el){
					$(el).removeClass('array1, array2');
					if(i % 2 == 0) {
						$(el).addClass('array2');
					}
					else {
						$(el).addClass('array1');
					}
				});
			}
		}
 
	});
</script>

Here is the survey back with the updated code in the hidden question. I added relevance on the second array to only show that question if at least one check-box in qHidden is checked.
count(that.qHidden.NAOK)>0

File Attachment:

File Name: limesurvey_survey_2955531.lss
File Size: 25 KB
Cheers,
Tony Partner

Solutions, code and workarounds presented in these forums are given without any warranty, implied or otherwise.

LimeSurvey is open-source and run entirely by volunteers so please consider donating to support the project.
Last Edit: 1 year 3 months ago by tpartner.
The administrator has disabled public write access.
The following user(s) said Thank You: StuTheQ

Re: Using previous Array question responses to set following Array subquestions 1 year 3 months ago #96393

  • StuTheQ
  • StuTheQ's Avatar
  • OFFLINE
  • Junior Lime
  • Posts: 26
  • Karma: 0
Dear Tony,

First of all, a big "Thank you!" for, once again, helping me out.

Your "turnkey" solution works perfectly. To be honest, I was expecting JavaScript code that closely resembled the original workaround that you posted back in 2011 (post #58058) but clearly things have moved on substantially since then. I spent yesterday going through the new workaround script, trying to understand the role of the new functions (i.e. trying to advance my infinitesimally small knowledge of JavaScript!) and also playing with the code so that I can change around the "trigger" columns in Q1.

If I understand correctly:

The workaround can be used as is (i.e. no need to specify or update question IDs) whenever I want to use an Array Q(n) to set an Array Q(n+1), provided that the workaround script given is placed in the source of the hidden question inserted between the two arrays.

(Out of curiosity, but please don't answer these if you've got better things to do!:
  • 'Relevance' now definitively supersedes 'conditions'?
  • What is the exact role of the qHidden toggle function?
  • The 'Fix up the q2 row background colours' script ensures that the subquestion rows in Q2 are alternate colours, regardless of the subquestion rows checked in Q1?)

By the way, I saw that this topic has received 22k views! Is that something that I can be proud of??!! :cheer:

Thanks again, Tony!

Regards,

StuTheQ
The administrator has disabled public write access.

Re: Using previous Array question responses to set following Array subquestions 1 year 3 months ago #96394

  • tpartner
  • tpartner's Avatar
  • OFFLINE
  • LimeSurvey Team
  • Posts: 4127
  • Thank you received: 761
  • Karma: 347
'Relevance' now definitively supersedes 'conditions'?
It doesn't really supersede but is an alternative. If you use the conditions designer, a relevance rule will automatically be generated and inserted for you. Alternatively, you can write your own relevance rule with far more flexibility than the conditions designer allows. See manual.limesurvey.org/Expression_Manager...ons_and_Relevance.3F.

What is the exact role of the qHidden toggle function?
I'm not sure I understand the question. The handleHiddenInput() function checks or unchecks boxes in the hidden question as you click radios in the first array. The array filter then shows or hides the corresponding rows in the second array.

The 'Fix up the q2 row background colours' script ensures that the subquestion rows in Q2 are alternate colours, regardless of the subquestion rows checked in Q1?
Correct. When rows are shown or hidden, it just removes all of the array1 and array2 classes from the rows and then reapplies them sequentially to the visible rows.
Cheers,
Tony Partner

Solutions, code and workarounds presented in these forums are given without any warranty, implied or otherwise.

LimeSurvey is open-source and run entirely by volunteers so please consider donating to support the project.
Last Edit: 1 year 3 months ago by tpartner.
The administrator has disabled public write access.
The following user(s) said Thank You: StuTheQ

Re: Using previous Array question responses to set following Array subquestions 1 year 3 months ago #96397

  • StuTheQ
  • StuTheQ's Avatar
  • OFFLINE
  • Junior Lime
  • Posts: 26
  • Karma: 0
Hi again Tony,

Thanks for the useful replies (sorry to pester you :angry: ; it's just that I always like to understand stuff, if possible! But I know that's not what the forum is for... :blush: ).
It doesn't really supersede but is an alternative. If you use the conditions designer, a relevance rule will automatically be generated and inserted for you. Alternatively, you can write your own relevance rule with far more flexibility than the conditions designer allows. See manual.limesurvey.org/Expression_Ma...ons_and_Relevance.3F.
Yes, I'd read that; the 'best practice' approach, perhaps? (no reply needed!)

What is the exact role of the qHidden toggle function?
I'm not sure I understand the question. The handleHiddenInput() function checks or unchecks boxes in the hidden question as you click radios in the first array. The array filter then shows or hides the corresponding rows in the second array.
Yes, I'd understood that function from the original workaround. It was just the "new" (?) 'toggle' function script which intrigued me (some kind of 'reset' function between iterations?) (no reply needed!)

The 'Fix up the q2 row background colours' script ensures that the subquestion rows in Q2 are alternate colours, regardless of the subquestion rows checked in Q1?
Correct. When rows are shown or hidden, it just removes all of the array1 and array2 classes from the rows and then reapplies them sequentially to the visible rows.
Cool!! :)

Guess it's about time that I enrolled for JavaScript evening classes somewhere!

Thanks, Tony.

Regards,

Stu
The administrator has disabled public write access.

Re: Using previous Array question responses to set following Array subquestions 1 year 2 months ago #97476

  • arielmosto
  • arielmosto's Avatar
  • OFFLINE
  • Junior Lime
  • Posts: 29
  • Karma: 0
Dear Tony:

How are you?

We are trying to use this java code in limesurvey 2.00+ build 130526, where the q1 is an array number checkbox and q2 is a text array.

But it doesn't work.

Is it possible that this script doesn't work with this type of question?

Thanks and regards Ariel
The administrator has disabled public write access.
Moderators: ITEd
Time to create page: 0.226 seconds
Donation Image