Welcome, Guest
Username: Password: Remember me
  • Page:
  • 1
  • 2

TOPIC: prefill questions based on attribute's in the token table

prefill questions based on attribute's in the token table 3 years 6 months ago #57265

  • joosts
  • joosts's Avatar
  • OFFLINE
  • Fresh Lemon
  • Posts: 6
  • Thank you received: 1
  • Karma: 0
For a survey, I need to complete a few questions based on info in the token table. The idea is to load info from an external database to the token table, than use limesurvey to check if these data are correct.

Based on info here,I got it to work for text input questions, for example below:

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

if('{TOKEN:ATTRIBUTE_1}' == '1') {
document.getElementById("answer74931X156X880").value = '{TOKEN:FIRSTNAME}' }
});
</script>


But I failed in both multiple choice and single choice questions.

I tried like this:

if('{TOKEN:ATTRIBUTE_1}' == '1') {
document.getElementById("answer74931X156X885").value = 'A1' }

and like this

if('{TOKEN:ATTRIBUTE_1}' == '1') {
document.getElementById("answer74931X156X884A1").value = Y }

and even

if('{TOKEN:ATTRIBUTE_1}' == '1') {
document.getElementById("input#answer74931X156X884A1").attr('checked', true)}
The administrator has disabled public write access.

Re: prefill questions based on attribute's in the token table 3 years 6 months ago #57275

  • DenisChenu
  • DenisChenu's Avatar
  • OFFLINE
  • Moderator Lime
  • Posts: 6334
  • Thank you received: 817
  • Karma: 243
Hello,

You don't have to use document.getElementById with jquery, and here you use jquery and pure javascript, i don't think it can work like that.

Try:
if('{TOKEN:ATTRIBUTE_1}' == '1') {
("input#answer74931X156X884A1").attr('checked', true);
}
The administrator has disabled public write access.

Re: prefill questions based on attribute's in the token table 3 years 6 months ago #57287

  • joosts
  • joosts's Avatar
  • OFFLINE
  • Fresh Lemon
  • Posts: 6
  • Thank you received: 1
  • Karma: 0
I tried both
<script type="text/javascript" charset="utf-8">
$(document).ready(function() {
if('{TOKEN:ATTRIBUTE_1}' == '1') {
("input#answer74931X156X884A1").attr('checked', true);
}
});
</script>
and also just to check
<script type="text/javascript" charset="utf-8">
$(document).ready(function() {
("input#answer74931X156X884A1").attr('checked', true);
});
</script>

and neither of them worked.
The administrator has disabled public write access.

Re: prefill questions based on attribute's in the token table 3 years 6 months ago #57288

  • DenisChenu
  • DenisChenu's Avatar
  • OFFLINE
  • Moderator Lime
  • Posts: 6334
  • Thank you received: 817
  • Karma: 243
Can you post a link to your survey ?

And oups ... the $ ...
$("input#answer74931X156X884A1").attr('checked', true);
The administrator has disabled public write access.
The following user(s) said Thank You: joosts

Re: prefill questions based on attribute's in the token table 3 years 6 months ago #57291

  • joosts
  • joosts's Avatar
  • OFFLINE
  • Fresh Lemon
  • Posts: 6
  • Thank you received: 1
  • Karma: 0
that dollar did it, for both multiple and single answer option!
merci beaucoup!
The administrator has disabled public write access.

Re: prefill questions based on attribute's in the token table 3 years 6 months ago #57306

  • Mazi
  • Mazi's Avatar
  • OFFLINE
  • LimeSurvey Team
  • Posts: 5325
  • Thank you received: 296
  • Karma: 249
Joost, to share your knowledge with other users, ca you write a short tutorial how to prefill different question types like text, single choice, multiple choice, ...?

That would be great!

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: prefill questions based on attribute's in the token table 3 years 6 months ago #57359

  • DenisChenu
  • DenisChenu's Avatar
  • OFFLINE
  • Moderator Lime
  • Posts: 6334
  • Thank you received: 817
  • Karma: 243
Mazi wrote:
Joost, to share your knowledge with other users, ca you write a short tutorial how to prefill different question types like text, single choice, multiple choice, ...?

That would be great!
Maybe make correction to this one:
docs.limesurvey.org/tiki-index.php?page=...nswer_default_value_

update it with jquery :)
The administrator has disabled public write access.

Re: prefill questions based on attribute's in the token table 3 years 6 months ago #57366

  • joosts
  • joosts's Avatar
  • OFFLINE
  • Fresh Lemon
  • Posts: 6
  • Thank you received: 1
  • Karma: 0
I'm still working out some details, but I'll write it out soon. I'm making an xls to make programming easier, should I include that file somehow too?
The administrator has disabled public write access.

Re: prefill questions based on attribute's in the token table 3 years 6 months ago #57374

  • joosts
  • joosts's Avatar
  • OFFLINE
  • Fresh Lemon
  • Posts: 6
  • Thank you received: 1
  • Karma: 0
Still having some trouble. I got everything to work fine for both single and multiple answers. But I have one multi answer question with over 60 answer options. I have it encoded in 12 attributes, each of which can contain one of the 60 answer options.
For example for person Y, attribute_3 may contain 21, which implies answer option X21 on question 884.
The code below does the trick in simple test, though it's not elegant. But when I encode all the attribute fields for all the answer options, Limesurvey freaks and messes with the code. Which is totally rational, given the redundancy of all that code.
if('{TOKEN:ATTRIBUTE_3}' == '21') {$("input#answer74931X156X884X21").attr('checked', true);}
if('{TOKEN:ATTRIBUTE_3}' == '22') {$("input#answer74931X156X884X22").attr('checked', true);}
if('{TOKEN:ATTRIBUTE_3}' == '23') {$("input#answer74931X156X884X23").attr('checked', true);}
 
if('{TOKEN:ATTRIBUTE_4}' == '21') {$("input#answer74931X156X884X21").attr('checked', true);}
if('{TOKEN:ATTRIBUTE_4}' == '22') {$("input#answer74931X156X884X22").attr('checked', true);}
if('{TOKEN:ATTRIBUTE_4}' == '23') {$("input#answer74931X156X884X23").attr('checked', true);}


I guess it would be better to do it something like this:
if('{TOKEN:ATTRIBUTE_3}' == '21' OR '{TOKEN:ATTRIBUTE_4}' == '21' OF '{TOKEN:ATTRIBUTE_5}' == '21' OR ...) {$("input#answer74931X156X884X21").attr('checked', true);}

But I can't find the proper JQUERY syntax for OR statements. Any hints?
The administrator has disabled public write access.

Re: prefill questions based on attribute's in the token table 3 years 6 months ago #57385

  • DenisChenu
  • DenisChenu's Avatar
  • OFFLINE
  • Moderator Lime
  • Posts: 6334
  • Thank you received: 817
  • Karma: 243
joosts wrote:
But I can't find the proper JQUERY syntax for OR statements. Any hints?
It's not jquery, but javascript here ;)

OR = ||
if('{TOKEN:ATTRIBUTE_3}' == '21' || '{TOKEN:ATTRIBUTE_4}' == '21' || '{TOKEN:ATTRIBUTE_5}' == '21' ) {
$("input#answer74931X156X884X21").attr('checked', true);
}
The administrator has disabled public write access.
  • Page:
  • 1
  • 2
Moderators: ITEd
Time to create page: 0.331 seconds
Donation Image