Après avoir évalué plusieurs outils de création de questionnaires, je me suis lancé il y a quelques jours avec LimeSurvey que apprend à découvrir et qui m'étonne chaque jour d'avantage.
Je bloque aujourd'hui sur un point:
Je demande au répondant sa taille, j'ai donc pour cela créé un tableau de nombres avec une ligne et deux colonnes, une pour les mètres, l'autre pour les centimètres.
Je souhaite limiter la première case aux nombres 0, 1, 2 ou une non réponse et la seconde de 0 à 99.
Pour les tableaux, je ne sais pas, mais lorsqu'on utilise les entrées numériques, je sais qu'on a ce genre de réglages dans les options avancées de la question.
Dans les options avancées, il y a bien la possibilité de mettre un min et un max mais le problème c'est que dans mon cas, ces valeurs sont différentes pour chaque champs: [0,1,2] pour les mètres et [0-99] pour les centimètres.
Je ne comprends pas bien, on parle de la taille du répondant, mais alors pourquoi un tableau si tu n'as qu'une seule entrée ?
Dans ton cas, je pense qu'un champ unique avec la taille en metre ou en centimetre (à toi de le préciser) et si tu choisis centimetre, interdit les chiffres à virgule. Tu peux même valider que le premier chiffre est 1, 2 ou 3 avec une regex.
Je fais un tableau pour avoir les mètres et les centimètres sur la même ligne.
Il me faut vraiment les 2 champs: mètre et centimètre. Il y aurait un moyen de les avoirs sur la même ligne si je n'utilise pas un tableau ?
Les tableaux c'est pour les réponses multiples, si tu as un problème de mise en forme, ce n'est sans doute pas une bonne raison.
Sinon, comme je te l'ai dit, oui c'est possible si tu maitrises CSS et Javascript.
Sinon, expliquer moi ton besoin de départ et pas la solution que tu veux mettre en place.
Peut-être que je pourrais te proposer une solution adéquate qui n'est pas celle que tu as envisagée.
Donc avec
- code de la question : TAILLE
- la ligne : TAILLE
- les colonnes : METRES et CENTI
et paramètres avancés : input_boxes à oui (affiache de texte)
Code:
is_empty(TAILLE_TAILLE_METRES) or (is_int(TAILLE_TAILLE_METRES) and TAILLE_TAILLE_METRES >=0 and TAILLE_TAILLE_METRES <= 3)
and
is_empty(TAILLE_TAILLE_CENTI) or (is_int(TAILLE_TAILLE_CENTI) and TAILLE_TAILLE_CENTI >=0 and TAILLE_TAILLE_CENTI <= 99)
Assistance on LimeSurvey forum and LimeSurvey core development are on my free time.
I'm not a LimeSurvey GmbH member. -
Professional support
-
Plugins, theme and development
. I don't answer to private message.
Sinon : le tableau en double entrée me semble plus sympa ici, non ?
Assistance on LimeSurvey forum and LimeSurvey core development are on my free time.
I'm not a LimeSurvey GmbH member. -
Professional support
-
Plugins, theme and development
. I don't answer to private message.
Je préfère que le répondant tape ses réponses, c'est pour ça que je part sur un tableau de nombres.
Tout marche nickel pour cette question.
Par contre sur une autre question du même style mais dont les lignes sont filtrées sur une autre question, ça ne fonctionne pas, je suis bloqué quoique je tape.
Voici mon code de validation, que je répète 24 fois, car j'ai au total 24 lignes:
(is_empty(tempsactivite_1_1) or (is_int(tempsactivite_1_1) and tempsactivite_1_1>=0 and tempsactivite_1_1<=50))
and
(is_empty(tempsactivite_1_2) or (is_int(tempsactivite_1_2) and tempsactivite_1_2>=0 and tempsactivite_1_2<=59))
Je pense que le _1_2 peut poser problème, essaye en ajoutant X et Y devant (tempsactivite_X1_Y1)
Sinon : ajoute aussi un texte dans le tip.
Et puis regarde le "fichier de logique" pour cette question.
Denis
Assistance on LimeSurvey forum and LimeSurvey core development are on my free time.
I'm not a LimeSurvey GmbH member. -
Professional support
-
Plugins, theme and development
. I don't answer to private message.
Je vais essayer mais ce n'est pas tempsactivite_Y1_X1 plutôt que tempsactivite_X1_Y1 ?
J'ai essayé mais j'ai toujours le même problème: quelque soit ma réponse, je reste bloqué sur la page lorsque tous les items ne sont pas affichés.
Quand je fais en sorte de sélectionner tous les items à la question filtres, là ça marche.
Donc je pense qu'il faudrait conditionner le code à l'existence de la sous question.
Tu sais comment je pourrais faire ?
Voici mon code:
(is_empty(tempsactivite_Y1_X1) or (is_int(tempsactivite_Y1_X1) and tempsactivite_Y1_X1>=0 and tempsactivite_Y1_X1<=50))
and
(is_empty(tempsactivite_Y1_X2) or (is_int(tempsactivite_Y1_X2) and tempsactivite_Y1_X2>=0 and tempsactivite_Y1_X2<=59))
and
(is_empty(tempsactivite_Y2_X1) or (is_int(tempsactivite_Y2_X1) and tempsactivite_Y2_X1>=0 and tempsactivite_Y2_X1<=50))
and
(is_empty(tempsactivite_Y2_X2) or (is_int(tempsactivite_Y2_X2) and tempsactivite_Y2_X2>=0 and tempsactivite_Y2_X2<=59))
and
(is_empty(tempsactivite_Y3_X1) or (is_int(tempsactivite_Y3_X1) and tempsactivite_Y3_X1>=0 and tempsactivite_Y3_X1<=50))
and
(is_empty(tempsactivite_Y3_X2) or (is_int(tempsactivite_Y3_X2) and tempsactivite_Y3_X2>=0 and tempsactivite_Y3_X2<=59))
and
(is_empty(tempsactivite_Y4_X1) or (is_int(tempsactivite_Y4_X1) and tempsactivite_Y4_X1>=0 and tempsactivite_Y4_X1<=50))
and
(is_empty(tempsactivite_Y4_X2) or (is_int(tempsactivite_Y4_X2) and tempsactivite_Y4_X2>=0 and tempsactivite_Y4_X2<=59))
and
(is_empty(tempsactivite_Y5_X1) or (is_int(tempsactivite_Y5_X1) and tempsactivite_Y5_X1>=0 and tempsactivite_Y5_X1<=50))
and
(is_empty(tempsactivite_Y5_X2) or (is_int(tempsactivite_Y5_X2) and tempsactivite_Y5_X2>=0 and tempsactivite_Y5_X2<=59))
and
(is_empty(tempsactivite_Y6_X1) or (is_int(tempsactivite_Y6_X1) and tempsactivite_Y6_X1>=0 and tempsactivite_Y6_X1<=50))
and
(is_empty(tempsactivite_Y6_X2) or (is_int(tempsactivite_Y6_X2) and tempsactivite_Y6_X2>=0 and tempsactivite_Y6_X2<=59))
and
(is_empty(tempsactivite_Y7_X1) or (is_int(tempsactivite_Y7_X1) and tempsactivite_Y7_X1>=0 and tempsactivite_Y7_X1<=50))
and
(is_empty(tempsactivite_Y7_X2) or (is_int(tempsactivite_Y7_X2) and tempsactivite_Y7_X2>=0 and tempsactivite_Y7_X2<=59))
and
(is_empty(tempsactivite_Y8_X1) or (is_int(tempsactivite_Y8_X1) and tempsactivite_Y8_X1>=0 and tempsactivite_Y8_X1<=50))
and
(is_empty(tempsactivite_Y8_X2) or (is_int(tempsactivite_Y8_X2) and tempsactivite_Y8_X2>=0 and tempsactivite_Y8_X2<=59))
and
(is_empty(tempsactivite_Y9_X1) or (is_int(tempsactivite_Y9_X1) and tempsactivite_Y9_X1>=0 and tempsactivite_Y9_X1<=50))
and
(is_empty(tempsactivite_Y9_X2) or (is_int(tempsactivite_Y9_X2) and tempsactivite_Y9_X2>=0 and tempsactivite_Y9_X2<=59))
and
(is_empty(tempsactivite_Y10_X1) or (is_int(tempsactivite_Y10_X1) and tempsactivite_Y10_X1>=0 and tempsactivite_Y10_X1<=50))
and
(is_empty(tempsactivite_Y10_X2) or (is_int(tempsactivite_Y10_X2) and tempsactivite_Y10_X2>=0 and tempsactivite_Y10_X2<=59))
and
(is_empty(tempsactivite_Y11_X1) or (is_int(tempsactivite_Y11_X1) and tempsactivite_Y11_X1>=0 and tempsactivite_Y11_X1<=50))
and
(is_empty(tempsactivite_Y11_X2) or (is_int(tempsactivite_Y11_X2) and tempsactivite_Y11_X2>=0 and tempsactivite_Y11_X2<=59))
and
(is_empty(tempsactivite_Y12_X1) or (is_int(tempsactivite_Y12_X1) and tempsactivite_Y12_X1>=0 and tempsactivite_Y12_X1<=50))
and
(is_empty(tempsactivite_Y12_X2) or (is_int(tempsactivite_Y12_X2) and tempsactivite_Y12_X2>=0 and tempsactivite_Y12_X2<=59))
and
(is_empty(tempsactivite_Y13_X1) or (is_int(tempsactivite_Y13_X1) and tempsactivite_Y13_X1>=0 and tempsactivite_Y13_X1<=50))
and
(is_empty(tempsactivite_Y13_X2) or (is_int(tempsactivite_Y13_X2) and tempsactivite_Y13_X2>=0 and tempsactivite_Y13_X2<=59))
and
(is_empty(tempsactivite_Y14_X1) or (is_int(tempsactivite_Y14_X1) and tempsactivite_Y14_X1>=0 and tempsactivite_Y14_X1<=50))
and
(is_empty(tempsactivite_Y14_X2) or (is_int(tempsactivite_Y14_X2) and tempsactivite_Y14_X2>=0 and tempsactivite_Y14_X2<=59))
and
(is_empty(tempsactivite_Y15_X1) or (is_int(tempsactivite_Y15_X1) and tempsactivite_Y15_X1>=0 and tempsactivite_Y15_X1<=50))
and
(is_empty(tempsactivite_Y15_X2) or (is_int(tempsactivite_Y15_X2) and tempsactivite_Y15_X2>=0 and tempsactivite_Y15_X2<=59))
and
(is_empty(tempsactivite_Y16_X1) or (is_int(tempsactivite_Y16_X1) and tempsactivite_Y16_X1>=0 and tempsactivite_Y16_X1<=50))
and
(is_empty(tempsactivite_Y16_X2) or (is_int(tempsactivite_Y16_X2) and tempsactivite_Y16_X2>=0 and tempsactivite_Y16_X2<=59))
and
(is_empty(tempsactivite_Y17_X1) or (is_int(tempsactivite_Y17_X1) and tempsactivite_Y17_X1>=0 and tempsactivite_Y17_X1<=50))
and
(is_empty(tempsactivite_Y17_X2) or (is_int(tempsactivite_Y17_X2) and tempsactivite_Y17_X2>=0 and tempsactivite_Y17_X2<=59))
and
(is_empty(tempsactivite_Y18_X1) or (is_int(tempsactivite_Y18_X1) and tempsactivite_Y18_X1>=0 and tempsactivite_Y18_X1<=50))
and
(is_empty(tempsactivite_Y18_X2) or (is_int(tempsactivite_Y18_X2) and tempsactivite_Y18_X2>=0 and tempsactivite_Y18_X2<=59))
and
(is_empty(tempsactivite_Y19_X1) or (is_int(tempsactivite_Y19_X1) and tempsactivite_Y19_X1>=0 and tempsactivite_Y19_X1<=50))
and
(is_empty(tempsactivite_Y19_X2) or (is_int(tempsactivite_Y19_X2) and tempsactivite_Y19_X2>=0 and tempsactivite_Y19_X2<=59))
and
(is_empty(tempsactivite_Y20_X1) or (is_int(tempsactivite_Y20_X1) and tempsactivite_Y20_X1>=0 and tempsactivite_Y20_X1<=50))
and
(is_empty(tempsactivite_Y20_X2) or (is_int(tempsactivite_Y20_X2) and tempsactivite_Y20_X2>=0 and tempsactivite_Y20_X2<=59))
and
(is_empty(tempsactivite_Y21_X1) or (is_int(tempsactivite_Y21_X1) and tempsactivite_Y21_X1>=0 and tempsactivite_Y21_X1<=50))
and
(is_empty(tempsactivite_Y21_X2) or (is_int(tempsactivite_Y21_X2) and tempsactivite_Y21_X2>=0 and tempsactivite_Y21_X2<=59))
and
(is_empty(tempsactivite_Y22_X1) or (is_int(tempsactivite_Y22_X1) and tempsactivite_Y22_X1>=0 and tempsactivite_Y22_X1<=50))
and
(is_empty(tempsactivite_Y22_X2) or (is_int(tempsactivite_Y22_X2) and tempsactivite_Y22_X2>=0 and tempsactivite_Y22_X2<=59))
and
(is_empty(tempsactivite_Y23_X1) or (is_int(tempsactivite_Y23_X1) and tempsactivite_Y23_X1>=0 and tempsactivite_Y23_X1<=50))
and
(is_empty(tempsactivite_Y23_X2) or (is_int(tempsactivite_Y23_X2) and tempsactivite_Y23_X2>=0 and tempsactivite_Y23_X2<=59))
and
(is_empty(tempsactivite_Y24_X1) or (is_int(tempsactivite_Y24_X1) and tempsactivite_Y24_X1>=0 and tempsactivite_Y24_X1<=50))
and
(is_empty(tempsactivite_Y24_X2) or (is_int(tempsactivite_Y24_X2) and tempsactivite_Y24_X2>=0 and tempsactivite_Y24_X2<=59))
Dans ce cas : ajoute .NAOK
and
(is_empty(tempsactivite_Y24_X2.NAOK) or (is_int(tempsactivite_Y24_X2.NAOK) and tempsactivite_Y24_X2.NAOK>=0 and tempsactivite_Y24_X2.NAOK<=59))
Assistance on LimeSurvey forum and LimeSurvey core development are on my free time.
I'm not a LimeSurvey GmbH member. -
Professional support
-
Plugins, theme and development
. I don't answer to private message.
Et sut, je l'ajoute directement sans y réfléchir maintenant, donc je l'oubli ...
Denis
Assistance on LimeSurvey forum and LimeSurvey core development are on my free time.
I'm not a LimeSurvey GmbH member. -
Professional support
-
Plugins, theme and development
. I don't answer to private message.