Welcome to the LimeSurvey Community Forum

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

Cacher un groupe de questions si l'autre est validé.

More
9 years 1 week ago #118049 by Antho
Bonjour bonjour !

J'aurais besoin d'un petit peu d'aide s'il vous plaît =) !

Je crée en ce moment un questionnaire, et j'ai créé deux groupes de questions bien distincts.
J'ai utilisé les groupes aléatoires pour tomber sur l'un ou l'autre aléatoirement à chaque début de questionnaire, puis j'ai aussi utilisé l'outil aléatoire dans mes groupes pour mes questions.

Bref, mon problème se situe dans le fait que je n'arrive pas à trouver comment faire pour que, si l'un de mes groupe de questions est choisi en premier en aléatoire, l'autre ne se montre pas après. Je pense qu'il faut utiliser le filtre conditionnel des groupes de questions, mais je n'arrive pas à réellement comprendre comment ça marche... J'essayais de trouer une formule pour dire que si l'autre groupe de questions a été validé, il ne faut pas montrer celui-ci, mais toutes mes démarches n'amènent à rien aha =) !

J'espère que j'ai réussi à donner assez d'infos !

Merci d'avance =D !
The topic has been locked.
  • Nickko
  • Nickko's Avatar
  • Offline
  • LimeSurvey Community Team
  • LimeSurvey Community Team
More
9 years 1 week ago #118051 by Nickko
Aléatoire = on modifie l'ordre.

Dans ton cas, il aurait fallu faire 3 groupes, le premier avec une fonction JS aléatoire et en fonction de ce résultat, on affiche l'un ou l'autre des groupes en utilisant les conditions.

Dans ton cas, pour ne pas tout modifier, j'ai bien une idée peut-être est-ce un peu tordu et le gestionnaire de condition ne te laissera pas faire, il faudra taper l'équation à la main sans doute.

Je vais d'abord t'expliquer mon idée en langage humain et ensuite je vais essayer de te guider pour la mettre en place mais je ne te promet pas que ça marche, je n'ai jamais eu à faire ça.

1. l'idée
On conserve tes groupes aléatoires
L'idée serait de mettre une condition sur le groupe tout entier et non sur une question.

Il faudrait faire afficher le groupe 2 que si aucune réponse n'a été choisis dans le groupe 1 et inversement.

Ainsi, si le groupe 1 s'est affiché le premier, le groupe 2 ne s'affichera pas et inversement.

Cela suppose que la première question de chaque groupe soit obligatoire, si ce n'est pas le cas, remplace la question 1 de chaque groupe dans mon raisonnement par n'importe quelle autre question du moment qu'elle est obligatoire.

Comprends-tu le principe ?

2. mise en oeuvre
Quand tu es au niveau d'un groupe, tu dois voir un champ "équation du filtre conditionnel" c'est ici qu'il faudra écrire ton équation "d'affichage".

Maintenant, j'avoue que je ne suis pas à l'aise avec l'écriture de tels équations.

Donc voici comment je m'y prends quand je dois faire ça.

Je vais dans la gestion des équations et je créé une condition comme je veux pour une question quelconque.

J'enregistre, je vais sur la question et je copie ce qui apparait dans le champ "équation du filtre conditionnel" de la question et je le colle dans celui du groupe.

Ensuite, je n'oublie pas de d'effacer la condition au niveau de la question en passant de nouveau par le gestionnaire de conditions.

Ensuite, je copie l'équation dans le champ "équation du filtre conditionnel" et je la modifie à la mains pour qu'elle corresponde au second cas.

Si tu veux on peut y aller pas à pas, tu me dis ce que tu fais, tu me copie-colle le résultat et je te dis précisément quoi faire pour l'étape suivante.

Nickko
Head of ergonomics, UX & UI.
The topic has been locked.
More
9 years 1 week ago - 9 years 1 week ago #118052 by Antho
Merci pour ta réponse !

C'est à peu près l'approche que j'avais essayé d'avoir à un moment, mais le souci c'est que la condition en elle-même est, "montrer la question si :", et là je suis obligé d'indiquer une valeur, inférieure, égale, ou supérieure, mais je ne vois pas comment indiquer "si la question n'est pas présente". De plus, toutes mes questions sont des valeurs comprises entre 1 et 9 car j'utilise un curseur.

A partir de là, il faudrait plus une fonction comme "not shown" ou "not answered" plutôt que par rapport à une valeur. Là, je viens d'essayer en mettant >= 10, en pensant donc que mon groupe allait se montrer si la valeur avait été à un moment >10 ( ce qui est possible car c'est compris entre 1 et 9), sauf que je n'avais pas prévu que cela allait me créer une double annulation, ce qui fait qu'aucun groupe n'a été montré aha =) !

J'étais donc parti sur une formule de ce type : ((P100et0_SQ001.NAOK >= "10"))
En mettant cette condition dans mon filtre de l'autre groupe.

Y a-t-il une possibilité d'inverser la condition ? Si la réponse à la question est ça, alors ne pas montrer cette question ?

En effet, à partir de là, je pourrais dire, si ma valeur à une question d'un groupe est <= à 10, alors ne pas montrer l'autre groupe.
Last edit: 9 years 1 week ago by Antho. Reason: More infos.
The topic has been locked.
More
9 years 1 week ago #118053 by Ben_V
Salut,
Tu trouveras ici une approche plus facile mais un peu différente car ce n'est plus un affichage d'un groupe ou de l'autre de manière aléatoire et exclusive, mais chaque groupe s'affiche en alternance en fonction de l'ID du répondant, à savoir s'il s'agit d'un nombre pair ou impair...en clair le groupe affiché change à chaque fois et à la fin de l'enquête, tu auras du 50/50 d'affichage, si tu as eu un nombre pair de réponses...

Pour tester, il faut que l'enquête soit activée ( car sinon pas de {SAVEDID} )
.

Benoît

EM Variables => bit.ly/1TKQyNu | EM Roadmap => bit.ly/1UTrOB4
Last Releases => 2.6x.x goo.gl/ztWfIV | 2.06/2.6.x => bit.ly/1Qv44A1
Demo Surveys => goo.gl/HuR6Xe (already included in /docs/demosurveys)
The topic has been locked.
More
9 years 1 week ago - 9 years 1 week ago #118055 by Antho
Merci beaucoup =D !

Donc je dois juste inscrire une équation dans le filtre d'un groupe, et l'autre équation dans celui de l'autre groupe ?

C'est parfait comme technique ça =) !

Après essai avec activation, mes deux groupes sont passés directement (c'est-à-dire qu'ils n'apparaissent pas dans le questionnaire), est-ce que cela a à voir avec le fait que mes réponses soient anonymisées ?

Je viens d'aller vérifier, j'ai bien un chiffre pour ID à chaque fois pourtant...
Last edit: 9 years 1 week ago by Antho.
The topic has been locked.
More
9 years 1 week ago - 9 years 1 week ago #118056 by Ben_V
Oups! celà me revient et je crois savoir pourquoi celà ne te fonctionne pas: il faut qu'il existe déjà un autre groupe visible (relevance=1) avant les 2 autres (sûrement car il faut poster le {SAVEDID} )...
Si celà ne correspond pas à la configuration de ton enquête on t'aidera à trouver autre chose ;)

Benoît

EM Variables => bit.ly/1TKQyNu | EM Roadmap => bit.ly/1UTrOB4
Last Releases => 2.6x.x goo.gl/ztWfIV | 2.06/2.6.x => bit.ly/1Qv44A1
Demo Surveys => goo.gl/HuR6Xe (already included in /docs/demosurveys)
Attachments:
Last edit: 9 years 1 week ago by Ben_V.
The topic has been locked.
More
9 years 1 week ago #118057 by Antho
Je pouvais toujours chercher alors tiens =P !

Mon enquête commence bel et bien par l'un des deux groupes, c'est bien dommage, l'idée de cette fonction me plaisait bien !
The topic has been locked.
More
9 years 1 week ago - 9 years 1 week ago #118058 by Ben_V
Bon il y a tjrs la possibilité de créer un "faux-vrai" premier groupe:

1) créer un groupe
2) créer une question texte libre o autre
3) coller un auto-submit:
Code:
<script type="text/javascript">
$(document).ready(function() {
  $('body').hide()
  document.limesurvey.submit();
});
</script>

Reprend le test que je t'ai déjà joint et colle le dans la toute première question ;)

Benoît

EM Variables => bit.ly/1TKQyNu | EM Roadmap => bit.ly/1UTrOB4
Last Releases => 2.6x.x goo.gl/ztWfIV | 2.06/2.6.x => bit.ly/1Qv44A1
Demo Surveys => goo.gl/HuR6Xe (already included in /docs/demosurveys)
Last edit: 9 years 1 week ago by Ben_V.
The topic has been locked.
More
9 years 1 week ago - 9 years 1 week ago #118059 by Antho
Alors, après essai, ça ne fonctionne pas, et quand je retourne dans ma première question, il m'affiche ça :


$(document).ready(function() {
$('body').hide()
document.limesurvey.submit();
});

A chaque actualisation avec le reste du script que tu m'as donné, il me l'enlève à chaque fois =/.
Pourtant, c'est bien dans ma première question comme tu me l'as dit.

EDIT :

Finalement, ça s'affiche aha, mais ça me met un beau message d'erreur assez long :
"<script type="text/javascript">
$(document).ready(function() < / span > $ < spanstyle="font-size: 1em; font-family: inherit; color: rgb(0, 153, 0);" > ( < / span > < spanstyle="font-size: 1em; font-family: inherit; color: rgb(0, 0, 255);" > ...... et ainsi de suite.

Avec span, $ et style en rouge.
Last edit: 9 years 1 week ago by Antho.
The topic has been locked.
More
9 years 1 week ago #118060 by Ben_V
Désactiver la protection XSS ;)
Paramètres généraux de l'installation (barre de menu principale) > Onglet securité
Changer le curseur "Filter HTML for XSS:" pour le mettre sur non

Benoît

EM Variables => bit.ly/1TKQyNu | EM Roadmap => bit.ly/1UTrOB4
Last Releases => 2.6x.x goo.gl/ztWfIV | 2.06/2.6.x => bit.ly/1Qv44A1
Demo Surveys => goo.gl/HuR6Xe (already included in /docs/demosurveys)
The topic has been locked.
More
9 years 1 week ago #118061 by Ben_V
J'attache un exemple avec un 1er groupe auto-submit; Il y a plus qu'à activer... ;)

File Attachment:

File Name: pair_impair.lss
File Size:14 KB

Benoît

EM Variables => bit.ly/1TKQyNu | EM Roadmap => bit.ly/1UTrOB4
Last Releases => 2.6x.x goo.gl/ztWfIV | 2.06/2.6.x => bit.ly/1Qv44A1
Demo Surveys => goo.gl/HuR6Xe (already included in /docs/demosurveys)
Attachments:
The topic has been locked.
More
9 years 1 week ago #118062 by Antho
Décidément,... Je crois que mon administrateur ne m'a point donné accès à ce réglage =P !
The topic has been locked.
Moderators: Nickko

Lime-years ahead

Online-surveys for every purse and purpose