Check out the LimeSurvey source code on GitHub!

Recode de questions

More
6 years 3 weeks ago #55881 by Ysthad
Bonjour,

Voici donc mon problème :
Q1 première question (visible) : multiple avec par exemple 3 items
Q2 Seconde question (visible) : multiple avec par exemple 3 items
Q3 Troisième question (invisible) :

je voudrais (re)coder la Q3 en fonction des réponses aux Q1 et Q2.
Concrètement :

Q3(item1)coché SSI Q1(item1) coché OU Q2(item 1) coché
Q3(item2)coché SSI Q1(item2) coché OU Q2(item 2) coché
Q3(item3)coché SSI Q1(item3) coché OU Q2(item 3) coché

Voilà.
D'avance merci.
Et au passage : bravo pour ce soft qui vaut très largement ce que j'ai pu tester ici ou là :)
Christophe.

Please Log in to join the conversation.

More
6 years 3 weeks ago #55909 by Nickko
Bonjour,

Je ne comprends rien à ce que tu demandes.
Qu'entends-tu par multiple et par recoder ?

Nickko
Ergonome / Usability expert

Please Log in to join the conversation.

More
6 years 3 weeks ago #55914 by Ysthad
:S
Bon... je vais essayer d'éclaircir un peu ma demande :

Q1 première question (visible) : multiple ==> je peux cocher une ou plusieurs réponses
Q2 Seconde question (visible) : multiple ==> idem
Q3 Troisième question (invisible) :

je voudrais (re)coder la Q3 en fonction des réponses aux Q1 et Q2.
Concrètement :

cocher "automatiquement" l'item 1 de ma Q3 s'il est coché en Q1 et/ou s'il est coché en Q2

cocher "automatiquement" l'item 2 de ma Q3 s'il est coché en Q1 et/ou s'il est coché en Q2

cocher "automatiquement" l'item 3 de ma Q3 s'il est coché en Q1 et/ou s'il est coché en Q2

Voilà, j'espère que c'est plus clair comme ça ?!
Merci bien,
Cdt,
Christophe.

Please Log in to join the conversation.

More
6 years 3 weeks ago #55915 by Nickko
Donc ce que tu recordes n'est pas la question mais la réponse à la question 3.

Clairement ça ne me semble pas possible de faire cela, mais quel intérêt puisque ça correspond au réponse des questions précédentes.

En gros explique nous quel est ton problème et nous t'aiderons à trouver une solution.

Là tu raisonnes en terme de solution, et celle que tu envisages ne me semble pas possible, mais sans doute y a-t-il d'autre façon de faire.

Nickko
Ergonome / Usability expert

Please Log in to join the conversation.

More
6 years 3 weeks ago #55920 by DenisChenu
Re,

Pour le faire come ceci,

la Q3 ne doit pas être invisible, il faut la déplacer en dehors de l'espace visible (css: position:absolute;top:-999em;left:-999em).

Ensuite cocher les case en fonctions du clic sur les cases de la Q2 ou Q1 (si les questions sont dans le même groupe), ou bien cocher les case en fonctions de test javascript sur le texte des réponses en SGQA si les questions sont dans des groupes différents.

Pas évident au final, et même complexe.

Assistance on LimeSurvey forum and LimeSurvey core development are on my free time.
I'm not a LimeSurvey GmbH member, professional service on demand (or search sondages pro).

Please Log in to join the conversation.

More
6 years 3 weeks ago #55925 by Ysthad
ok...
Je vais lâcher l'affaire. Ca dépasse mes compétences.
Pour information : l'idée c'était de filtrer l'affichage des lignes d'un tableau en fonction de plusieurs questions à choix multiples.
Quoi qu'il en soit,
merci pour vos questions, réponses et aides !
Cdt,
Christophe.

Please Log in to join the conversation.

More
5 years 5 months ago #65712 by Ysthad
Bonjour,
Je me permets de remonter le sujet car le problème se pose à nouveau... même si un peu différent.

Question 1 (visible-SGQA 15375X64X762) : âge (entrée numérique)
Question 2 (invisible-SGQA 15375X67X774) : âge en trois modalités (moins de 20 ans ; 20 à 65 ans ; plus de 65 ans) en fonction de la réponse en Q1.

Je voudrais que ma Q2 se code "automatiquement" en fonction de la réponse en Q1... J'ai commencé un code mais qui, bien évidemment, ne fonctionne pas :(

<script type="text/javascript" charset="utf-8">

if {INSERTANS:15375X64X762} < 20 then {INSERTANS:15375X67X774}=1

if {INSERTANS:15375X64X762} > 65 then {INSERTANS:15375X67X774}=3

else {INSERTANS:15375X67X774}=2;

</script>

Pourriez-vous m'aider SVP ?
Merci !
Christophe.

Please Log in to join the conversation.

More
5 years 5 months ago - 5 years 5 months ago #65717 by DenisChenu
Salut,
Plusieurs choses:
  1. Pour effectuer des test sur des nombres en javascript, il faut que les élements soient des nombres.
  2. Tu ne peux modifier des élements de type <a href=' www.docs.limesurvey.org/tiki-index.php?p...tions+for+LimeSurvey '>SGQA</a>, mais uniquement des éléments de ton contenu.
  3. Pas de if then directement

Pour cela, il faut les multiplier par 1 :). Et pas de if then

Tente avec

$('#question762 .texte').blur(function() {
var age=$('#question762 .texte').val();
  $('#question774 .texte').val(2);
  if (age*1 < 20){
    $('#question774 .texte').val(1);
  }
  if (age*1 >65){
    $('#question774 .texte').val(3);
  }
});


Si la question 74 est un champ de type texte.

AUtre chose, n'hésite pas pour travailler à faire des test et à condtruire ton code au fur et à mesure.

Utilise des alert(

Assistance on LimeSurvey forum and LimeSurvey core development are on my free time.
I'm not a LimeSurvey GmbH member, professional service on demand (or search sondages pro).
Last Edit: 5 years 5 months ago by DenisChenu.

Please Log in to join the conversation.

More
5 years 5 months ago #65722 by Ysthad
Je vais tanter le coup.

cela étant, j'ai un problème de fond. Mon javascript semble ne pas être décodé...

1. j'écris le code dans le cadre de la question mon code après avoir cliqué sur "Source" ==> le code est transformé. Par exemple les sc sont supprimés

2. J'écris le code directement dans le cadre de la question ==> le code est transformé... Ajout de balise <p> un peu partout


:( :(

Please Log in to join the conversation.

More
5 years 5 months ago - 5 years 5 months ago #65729 by Ysthad
Shnoulle,
merci de m'avoir mis sur le bon chemin... j'ai trouvé :-)
Voici le code qui fonctionne chez moi... Ce pourra peut-être en aider certains dans la même situation que moi ;) :

<p>Age Recode</p> <script type="text/javascript" charset="utf-8"> $(document).ready(function() { var ager='{INSERTANS:15375X64X762}'; if(ager*1 < 20) { $('#answer15375X67X774A1').attr('checked',true); } else { if(ager*1 < 66) { $('#answer15375X67X774A2').attr('checked',true); } else { $('#answer15375X67X774A3').attr('checked',true); } } } ); </script> [code] Cdt, Christophe.[code]
<p>Age Recode</p>
<script type="text/javascript" charset="utf-8">
$(document).ready(function()
{

var ager='{INSERTANS:15375X64X762}';

if(ager*1 < 20) {
$('#answer15375X67X774A1').attr('checked',true);
}
else {
if(ager*1 < 66) {
$('#answer15375X67X774A2').attr('checked',true);
}
else {
$('#answer15375X67X774A3').attr('checked',true);
}
}
}
);
</script>
Cdt, Christophe.[code]

Cdt,
Christophe.
Last Edit: 5 years 5 months ago by Ysthad.

Please Log in to join the conversation.

Moderators: Nickko
Imprint                   Privacy policy         General Terms & Conditions         Revocation information and revocation form