Welcome, Guest
Username: Password: Remember me

TOPIC: Selection automatique d'une réponse (Boutons radio) selon un attribut

Selection automatique d'une réponse (Boutons radio) selon un attribut 1 year 4 months ago #93547

  • toto
  • toto's Avatar
  • OFFLINE
  • Fresh Lemon
  • Posts: 13
  • Thank you received: 1
  • Karma: 0
Bonjour,

La question a été posée plusieurs fois sur le forum, mais je ne parviens pas à implémenter cette fonctionnalité. Voici les informations relatives à mon installation :

- Serveur : Ubuntu 12.04 / apache 2 / PHP 5
- Limesurvey Version 2.00+(130311)
- XSS : Désactivé
- Questionnaires : tests effectués en anonyme ou non-anonyme (même résultat)

Description du contexte :

Mener des enquêtes de satisfaction sur des séjours de vacances hébergés. Dans mes questionnaires, la première question propose de sélectionner la station qui à acceuillie le participant. Je souhaiterais que la réponse à cette question soit automatiquement pré-remplis par rapport à un attribut "station". Pour cela :

- Dans la table des participants centralisés, j'ai un attribut "station" (20 stations référencées).
- Dans chaque questionnaires, j'ai un attribut personnalisé "station".
- Quand j'affecte un participant à un questionnaire, l'attribut est correctement transmis de la table centralisé vers la table "Token", correspondant aux questionnaires.

Premier problème :

L'URL contenue dans le mail d'invitation : j'ai tenté de jouer avec les paramètres {SURVEYURL}, {TOKEN:ATTRIBUTE_1}, {ATTRIBUTE_1} tel que suggéré sur le forum. Les données s'affichent bien dans le corps du mail mais l'URL d'invitation n'est pas correctement formatée et donc inexploitable. Je n'ai pas trouvé d'information concrète dans la documentation, relative à la concaténation de ces expressions. Pour l'instant je modifie donc l'URL manuellement pour intégrer le bon attribut, exemple :

[...]index.php/survey/index/sid/171262/token/9zdhk7zp6rziy4a/ATTRIBUTE_1/BLB/newtest/Y

Deuxième problème :

Pour que la bonne réponse soit automatiquement sélectionnée, j'ai récupéré un script sur ce forum, que j'ai adapté à mes questionnaires, voici un exemple correspondant à l'URL ci-dessus :
<script type="text/javascript" charset="utf-8">
$(document).ready(function() {
if('ATTRIBUTE_1' == 'AML') {$("input#answer171262X1X1A1").attr('checked', true);}
if('ATTRIBUTE_1' == 'BLB') {$("input#answer171262X1X1A2").attr('checked', true);}
if('ATTRIBUTE_1' == 'BBT') {$("input#answer171262X1X1A3").attr('checked', true);}
if('ATTRIBUTE_1' == 'LBL') {$("input#answer171262X1X1A4").attr('checked', true);}
if('ATTRIBUTE_1' == 'BBA') {$("input#answer171262X1X1A5").attr('checked', true);}
if('ATTRIBUTE_1' == 'CMB') {$("input#answer171262X1X1A6").attr('checked', true);}
if('ATTRIBUTE_1' == 'CLE') {$("input#answer171262X1X1A7").attr('checked', true);}
if('ATTRIBUTE_1' == 'CRS') {$("input#answer171262X1X1A8").attr('checked', true);}
if('ATTRIBUTE_1' == 'EUG') {$("input#answer171262X1X1A9").attr('checked', true);}
if('ATTRIBUTE_1' == 'GRX') {$("input#answer171262X1X110").attr('checked', true);}
if('ATTRIBUTE_1' == 'JZC') {$("input#answer171262X1X111").attr('checked', true);}
if('ATTRIBUTE_1' == 'LML') {$("input#answer171262X1X112").attr('checked', true);}
if('ATTRIBUTE_1' == 'LXL') {$("input#answer171262X1X113").attr('checked', true);}
if('ATTRIBUTE_1' == 'MTG') {$("input#answer171262X1X114").attr('checked', true);}
if('ATTRIBUTE_1' == 'LMD') {$("input#answer171262X1X115").attr('checked', true);}
if('ATTRIBUTE_1' == 'PRC') {$("input#answer171262X1X116").attr('checked', true);}
if('ATTRIBUTE_1' == 'LPR') {$("input#answer171262X1X117").attr('checked', true);}
if('ATTRIBUTE_1' == 'SAM') {$("input#answer171262X1X118").attr('checked', true);}
if('ATTRIBUTE_1' == 'SHB') {$("input#answer171262X1X119").attr('checked', true);}
if('ATTRIBUTE_1' == 'SLB') {$("input#answer171262X1X120").attr('checked', true);}
});
</script>

Ce script a été ajouté dans la section "Aide" et/ou "Question" de la première question, malheureusement il semble ne pas être correctement interprété par LimeSurvey (il est valide sur "Online JavaScript Validator"). Quand je regarde le code source de la page contenant la question, je vois bien le JavaScript, mais il n'est pas correctement formaté (contiens du html) et un message d'erreur est affiché à l’intérieur de celui-ci. exemple du début du script :
<script type="text/javascript" charset="utf-8">
$(document).ready(function() {
if('ATTRIBUTE_1' == 'AML') <span style='background-color: #eee8aa;'>
<span title='Syntaxe non pris en charge'[...]

Voici mes premiers pas avec la gestion des attributs. Si quelqu'un de plus expérimenté ayant déjà rencontré ce type de problème pouvait m'aider cela ne serait pas de refus :)

Merci !
Last Edit: 1 year 4 months ago by toto. Reason: Fautes
The administrator has disabled public write access.

Selection automatique d'une réponse (Boutons radio) selon un attribut 1 year 4 months ago #93550

  • Ben_V
  • Ben_V's Avatar
  • OFFLINE
  • Platinum Lime
  • Posts: 1061
  • Thank you received: 234
  • Karma: 74
Salut,
Pour le javascript essaie le code suivant:
(à coller directement dans la source de l'aide ou de la question )
<script type="text/javascript" charset="utf-8">
$(document).ready(function() {
if('ATTRIBUTE_1' == 'AML') { $("#answer171262X1X1A1").attr('checked', true); }
if('ATTRIBUTE_1' == 'BLB') { $("#answer171262X1X1A2").attr('checked', true); }
if('ATTRIBUTE_1' == 'BBT') { $("#answer171262X1X1A3").attr('checked', true); }
if('ATTRIBUTE_1' == 'LBL') { $("#answer171262X1X1A4").attr('checked', true); }
if('ATTRIBUTE_1' == 'BBA') { $("#answer171262X1X1A5").attr('checked', true); }
if('ATTRIBUTE_1' == 'CMB') { $("#answer171262X1X1A6").attr('checked', true); }
if('ATTRIBUTE_1' == 'CLE') { $("#answer171262X1X1A7").attr('checked', true); }
if('ATTRIBUTE_1' == 'CRS') { $("#answer171262X1X1A8").attr('checked', true); }
if('ATTRIBUTE_1' == 'EUG') { $("#answer171262X1X1A9").attr('checked', true); }
if('ATTRIBUTE_1' == 'GRX') { $("#answer171262X1X110").attr('checked', true); }
if('ATTRIBUTE_1' == 'JZC') { $("#answer171262X1X111").attr('checked', true); }
if('ATTRIBUTE_1' == 'LML') { $("#answer171262X1X112").attr('checked', true); }
if('ATTRIBUTE_1' == 'LXL') { $("#answer171262X1X113").attr('checked', true); }
if('ATTRIBUTE_1' == 'MTG') { $("#answer171262X1X114").attr('checked', true); }
if('ATTRIBUTE_1' == 'LMD') { $("#answer171262X1X115").attr('checked', true); }
if('ATTRIBUTE_1' == 'PRC') { $("#answer171262X1X116").attr('checked', true); }
if('ATTRIBUTE_1' == 'LPR') { $("#answer171262X1X117").attr('checked', true); }
if('ATTRIBUTE_1' == 'SAM') { $("#answer171262X1X118").attr('checked', true); }
if('ATTRIBUTE_1' == 'SHB') { $("#answer171262X1X119").attr('checked', true); }
if('ATTRIBUTE_1' == 'SLB') { $("#answer171262X1X120").attr('checked', true); }
});
</script>
Benoît

goo.gl/Bw5iM => Recherche GG dans le forum français (remplacer "exemple" dans la barre de recherche)
goo.gl/WX8PH => GG search for english forum (Replace "example" in the search bar)
goo.gl/IxiGu => Búsqueda en el foro en español (Cambiar "ejemplo" en la barra de...
Last Edit: 1 year 4 months ago by Ben_V.
The administrator has disabled public write access.

Selection automatique d'une réponse (Boutons radio) selon un attribut 1 year 4 months ago #93552

  • DenisChenu
  • DenisChenu's Avatar
  • OFFLINE
  • Moderator Lime
  • Posts: 6207
  • Thank you received: 788
  • Karma: 238
Yep: pour utiliser les { } ajouter des espaces pour qu'ils ne soient pas pris en compte par le gestionnaire d'expression.

Sinon, les questionnaires sont anonyme ?

Avec la méthode manuelle, cela fonctionne, si oui: le lien à indiquer:
http://example.org/index.php/survey/index/sid/{SID}/token/{TOKEN}/SQGQA/{TOKENATTRIBUTE_1}/newtest/Y

Avec SGQA à 171262X1X11 (je pense)

Denis
The administrator has disabled public write access.

Selection automatique d'une réponse (Boutons radio) selon un attribut 1 year 4 months ago #93590

  • toto
  • toto's Avatar
  • OFFLINE
  • Fresh Lemon
  • Posts: 13
  • Thank you received: 1
  • Karma: 0
Bonjour,

Tout dabord merci pour ce retour rapide. Pour le JavaScript, effectivement le JavaScripot est correctement interprété avec les espaces entre les {}.
Par contre, je ne parviens pas à passer correctement l'attribut dans l'URL. La balise {SID} n'existe pas et si je passe les valeurs manuellement, rien ne se passe lors de la première question.

N'y a-t-il pas une documentation complète sur l'utilisation des attributs ?

Merci !
The administrator has disabled public write access.

Selection automatique d'une réponse (Boutons radio) selon un attribut 1 year 4 months ago #93594

  • DenisChenu
  • DenisChenu's Avatar
  • OFFLINE
  • Moderator Lime
  • Posts: 6207
  • Thank you received: 788
  • Karma: 238
Juste pour {SID}, je suis quasi sur qu'elle est replacer par le numéro du questionnaire lors de l'envoi des mails.

Mais concernant les attributs, tu peux directement les utiliser dans le questionnaire si celui-ci est non anonyme. C'est le cas ou non ?

Denis
The administrator has disabled public write access.

Selection automatique d'une réponse (Boutons radio) selon un attribut 1 year 4 months ago #93596

  • toto
  • toto's Avatar
  • OFFLINE
  • Fresh Lemon
  • Posts: 13
  • Thank you received: 1
  • Karma: 0
RE,

Les questionnaires sont anonyme. Je vais faire un test en non-anonyme.
The administrator has disabled public write access.

Selection automatique d'une réponse (Boutons radio) selon un attribut 1 year 4 months ago #93628

  • toto
  • toto's Avatar
  • OFFLINE
  • Fresh Lemon
  • Posts: 13
  • Thank you received: 1
  • Karma: 0
RE,

Voici les quelques tests que j'ai fait avec une URL construite à la main (impossible d'obtenir une URL correct avec les champs de remplacement) :

mondomaine.fr/index.php/survey/index/sid/758286/token/6qsu326x55mzkqu/758286X15X72/A1/newtest/Y

En anonyme : La réponse n'est pas sélectionnée.
En non-anonyme : même résultat.

J'ai vérifier plusieurs fois les numéros de questionnaire/groupe/question/réponse et tout est correcte.
Last Edit: 1 year 4 months ago by toto. Reason: modification
The administrator has disabled public write access.

Selection automatique d'une réponse (Boutons radio) selon un attribut 1 year 4 months ago #93636

  • DenisChenu
  • DenisChenu's Avatar
  • OFFLINE
  • Moderator Lime
  • Posts: 6207
  • Thank you received: 788
  • Karma: 238
Salut,

Test dabord que à l'envoi
{SID} et {TOKEN} sont bien remplacé. Cela devrait être le cas.

Ensuite, le lien à indiquer est:
/index.php/survey/index/sid/{SID}/token/{TOKEN}/newtest/Y?758286X15X72=A1
The administrator has disabled public write access.

Selection automatique d'une réponse (Boutons radio) selon un attribut 1 year 4 months ago #93799

  • toto
  • toto's Avatar
  • OFFLINE
  • Fresh Lemon
  • Posts: 13
  • Thank you received: 1
  • Karma: 0
Bonjour,

J'ai finalement réussit à faire fonctionner la sélection automatique de la première réponse, avec un attribut spécifique. Le liens proposé précédemment fonctionne.

Merci beaucoup pour votre assistance.

Cordialement,
The administrator has disabled public write access.
Moderators: Nickko
Time to create page: 0.413 seconds
Donation Image