Sondages Pro : Vos enquêtes sur internet
Sondages en ligne, enquêtes et recueil de données par Internet.

Accueil > Documentation et outils > Le gestionnaire d’expression > Les variables des équations dans LimeSurvey

Les variables des équations dans LimeSurvey

Dernière modification : lundi 27 mai 2019

Pour utiliser le gestionnaire d’expression, nous avons besoin d’utiliser des variables. Ces variables vont être remplacées par les valeurs correspondantes au moment du passage du questionnaire.

Attention, utiliser des variables inexistantes bloque complètement le gestionnaire d’expression. Il est important de valider le questionnaire avant de le mettre en production.

Les variables principale

Certaines variables sont ‘globales’, elles ne dépendent pas directement du gestionnaire d’expressions, mais plus du gestionnaire de modèle. Les plus intéressantes à utiliser avec le gestionnaire d’expression :

{QID}
Le numéro de la question : très pratique dans le code javascript : $("#question{QID}") en jquery permet directement de manipuler la question.
{SGQ}
La partie identifiant les champs de saisie. Chaque champ de saisie commencera par ce code. Par exemple, pour identifier la case à cocher d’une réponse à choix unique de choix OUI : $("#answer{SGQ}OUI"), pour identifier le champs de la sous question SQ1 : $("#answer{SGQ}SQ1").
{GID}
Le numéro du groupe de la question.
{TOKEN:*}
Avec * pour chacun des éléments de l’invitation : TOKEN:FIRSTNAME pour le prénom, TOKEN:ATTRIBUTE_1 pour l’attribut 1 ....

Les codes des questions

Les réponses aux questions peuvent directement être reprisent avec leur code.

  • Pour les questions à réponse unique : c’est uniquement le code de la question soit {QCODE}.
    PNG - 5.6 ko
    Le code de la question
  • Pour les questions à réponses multiples, les questions avec sous-questions : c’est le code de la question, le trait de soulignement puis le code de la sous question : soit {QCODE_SQ001}.
    PNG - 18.6 ko
    Code des sous questions
  • Pour les questions à double entrée (tableau de textes ou tableau de nombres), il faut utiliser les 2 codes des sous question soit {QCODE_SQY01_SQX02}.
    PNG - 38.5 ko
    Code des sous questions à double entrée
  • Pour les questions de classement : QCODE_1 va vous donner la réponses classée en premier, QCODE_2 en deuxième etc...
  • Pour les tableaux à double échelle  : {QCODE_SQ001_1} pour la première réponse de la première échelle, {QCODE_SQ001_2} pour la première réponse de la deuxième échelle ...
  • Pour les complèments aux questions : Autres et Commentaires, il faut ajouter _other pour autre ({QCODE_other}) et _comment pour les commentaires (QCODE_comment).

L’ensemble des possibilité est récapitulées dans le manuel de LimeSurvey : Qcode Variable Naming.

Les suffixes

A ces question il est possible, et souvent important, d’ajouter un suffixe. Ceci va permettre de récupérer exactement l’information voulue.

Par défaut, sans suffixe : c’est le code qui sera retourné (soit QCODE.code). On ajoute le suffixe au code de la question séparé par un point (QCODE.suffixe ou QCODE_SQ1.suffixe).

code ( QCODE.code )
Donne le code de la réponse ou le texte saisi pour les réponses texte. Pour les cases à cocher, le code sera "Y" ou "" (vide).
NAOK ( QCODE.NAOK )
Donne le même résultat que code, cependant n’entraîne pas une erreur sur des calculs. En effet si la question est masquée par des conditions, utiliser code dans des calculs peut entrainer des erreurs. En utilisant NAOK, si la question est masquée, cela sera remplacé par "" ou par 0 selon le besoin.
shown ( QCODE.shown )
Le texte de la réponse donnée. Pour les question à choix unique le texte direct de la réponse choisie par le répondant. Plutôt utilisé pour rappeler au répondant ses réponses
relevanceStatus (Qcode.relevanceStatus)
Le statut de la question : c’est à dire si la question à était masqué par une condition ou une équation du filtre conditionnel. Si la question est masquée, le code retournée est 0, sinon le code est 1.
Remplace avantageusement la copie des conditions. EN effet si plusieurs question ont les mêmes filtres : il suffit de gérer ce filtre dans une seule des questions et d’ajouter aux autres l’équation Qcode.relevanceStatus pour obtenir le même filtre.
qid ( QCODE.qid )
L’identifiant numérique unique de la question. Particulièrement utile pour construire les scripts javascript.
sgqa ( QCODE.sgqa )
L’identifiant unique utilisé pour construire le code HTML des réponses. Particulièrement utile pour construire les scripts javascript : les champs de saisie sont identifié par #answer{QCODE.sgqa}.

Le reste des suffixes est disponible sur la documentation de LimeSurvey

Les mots self, this, that

Ces 3 mots clés peuvent être utilisés pour remplacer les codes des questions, notamment pour les questions à choix multiples ou les tableaux de questions

this
Utilisé dans le texte ou les attributs des fonction, remplace le code de la question. Dans l’attribut Équation de validation de question il va être remplacé par l’ensemble des codes des questions.
Par exemple pour controler que toutes les réponses sont supérieures à 3, vous pouvez utiliser directement this > 3
self
Utilisé principalement pour les questions à réponses multiples ( les tableaux aussi ) : va être remplacé par un tableau des sous questions. _Un exemple : pour compter le nombre de réponses données count(self.NAOK).
Vous pouvez filtrer les sous question pour n’en prendre qu’un partie avec un sélecteur supplémentaire : _sq_SQ01 : cela va sélectionner toutes les sous questions dont le code commence par SQ01._
Par exemple, pour sélectionner le texte de la réponse donnée à la ligne SQ002 d’un tableau : {self.sq_SQ001.shown}.
that
Équivalent à self mais dans les autres questions, ce mot clé a besoin du code d’une question supplémentaire : that.Q1 par exemple. On peut encore utiliser les mêmes suffixes que pour les codes des questions et le même sélecteur de sous question.
sum(that.Q1.code) va nous donner la somme des valeurs données à une question de type Multiples entrées numériques
{that.QCODE.qid} va être remplacée par le numéro identifiant de la question QCODE.