accès au réponses des pages (groupes de question) précédentes

More
5 months 3 weeks ago - 5 months 3 weeks ago #153339 by Morrox
Morrox created the topic: accès au réponses des pages (groupes de question) précédentes
Bonjour,

J'utilise la version de limesurvey 2.64.7 build 170404.
Paramètres du questionnaire : Les réponses de ce questionnaire ne sont PAS anonymes.
Présentation groupe par groupe.
Un index complet des questions sera montré, les participants pourront aller directement aux questions pertinentes.

Je cherche à réaliser un test comprenant différentes catégories que j'ai donc séparé en groupe de question, le test devant être réalisé en un temps limite de 45 minutes j'ai intégré un timer sur l'ensemble du questionnaire. Le candidat participant au questionnaire va répondre au plus de question possible puis en laisser de côté pour y répondre si il lui reste du temps.

Dans cette logique j'ai consacré un dernier groupe de question avec une seule question de type équation qui fait office de récapitulatif avec pour chaque groupe de question le nombre de question non répondu et je voudrais en plus afficher sous chaque groupe une liste de lien vers les question non répondu qui chargerais la page du groupe puis effectuerais un scroll jusqu'à la question.

je peux correctement afficher les questions non répondu ainsi que les liens mais uniquement si je précise {QID} par {QID}, j'ai attribué les codes de mes questions de sorte à savoir que tel question est la nieme question de tel groupe de sorte à automatiser le traitement en utilisant deux boucles puis en appelant une fonction qui prend en paramétrè le {QID} et vérifie count(qid)==0 pour ajouter ou non le lien vers cette question dans la liste.

Mais premier problème : une erreur arrive, le paramètre qid de ma fonction est considéré par count() comme une variable non défini ce qui me fait penser que les fonction EM s’exécute avant le JS ce qui fait que count s'effectu sur le nom de variable qid et non son contenu qui serait par exemple A001. D'où ma question, peut-on modifier ce comportement ?
Je n'ai toujours pas compris comment les réponses étaient enregistrés au changement de page mais d'après quelques rare post sur le sujet j'ai cru comprendre qu'un autre moyen d'accéder au question se faisait par ajax et jquery, la question serait alors comment procéder ?
for(var nbg=0; nbg<2;nbg++){ //test avec 2 groupes
    for(var nbq=0; nbq<5;nbq++){ // comportant 5 questions chacun 
      if(nbg==0){
        g="A";
      }else if(nbg==1){
        g="B";
      }
      isAnswered((g+"00"+nbq),g)
    }
  }
function isAnswered(nq,ng){
		if({count(nq)}==0){
       		var objUL  = document.getElementById(ng);
           	var objLI=document.createElement( 'li' );
           	objLI.innerHTML = "<p>(nq,ng) : ("+nq+","+ng+")</p>"; //insertion de text pour tester
           	objUL.insertBefore( objLI , objUL.firstChild );
	    }
	}

second problème : je ne me suis pas encore occupé de la redirection des liens, j'avais pensé à un click sur le bouton du groupe dans l'index mais dans ce cas comment faire savoir après le chargement de la page qu'un scroll doit s'effectuer ?
Encore une fois ajax et jquery ?

Merci d'avance pour toute réponse que vous pourriez m'apporter.
Last Edit: 5 months 3 weeks ago by Morrox.

Please Log in to join the conversation.

More
5 months 3 weeks ago #153340 by Nickko
Nickko replied the topic: accès au réponses des pages (groupes de question) précédentes
Peut-être en ajoutant .value après le qid.

Nickko
Ergonome / Usability expert

Please Log in to join the conversation.

More
5 months 3 weeks ago #153381 by Morrox
Morrox replied the topic: accès au réponses des pages (groupes de question) précédentes
Malheureusement non il considère qid.value comme variable non définie.
Existe-t-il une solution pour accéder aux réponses autrement ?

Please Log in to join the conversation.

More
5 months 3 weeks ago #153385 by Nickko
Nickko replied the topic: accès au réponses des pages (groupes de question) précédentes
En Javascript, oui, directement via le DOM ou via Jquery qui est fourni avec LS.
Mais il faut que les questions soient sur la même page que l'interrogation.

Nickko
Ergonome / Usability expert

Please Log in to join the conversation.

More
5 months 3 weeks ago #153409 by Morrox
Morrox replied the topic: accès au réponses des pages (groupes de question) précédentes
Hmmm le test durant 45 minutes il y a une quantité de question trop importante pour tout afficher sur une même page et le système de groupe de question m'est bien utile pour les fonctionnalités que j'ai ajouté...

Y a-t'il une solution en PHP pour accéder aux réponses des autres pages dans ce cas ?

Please Log in to join the conversation.

More
5 months 3 weeks ago #153411 by Nickko
Nickko replied the topic: accès au réponses des pages (groupes de question) précédentes
Non, pas que je sache. peut-être en développant un plugin.

Nickko
Ergonome / Usability expert

Please Log in to join the conversation.

More
5 months 2 weeks ago - 5 months 2 weeks ago #153456 by Potable
Potable replied the topic: accès au réponses des pages (groupes de question) précédentes
J'apporte une idée en JS, pour le PHP, je pense qu'il faudrait modifier le fichier application\helpers\expressions\em_core_helper.php et y créer les fonctions nécessaires.
En utilisant le gestionnaire d'expression et la fonction list ( cf wiki ) tu peux récupérer la liste des réponses non nulles d'une question, en fournissant le qcode.
La liste sera de la forme answer1, answer2, answer3 etc. J'imagine qu'il faudra donc ajouter des guillemets, pour en faire un string, puis un split en JS pour pouvoir traiter ces réponses grâce à un tableau. Sinon JS va interpréter answer1 comme un nom de variable. J'ai pas encore testé la partie guillemets et split, mais dis nous si ca marche :)
Last Edit: 5 months 2 weeks ago by Potable.

Please Log in to join the conversation.

More
5 months 2 weeks ago #153808 by DenisChenu
DenisChenu replied the topic: accès au réponses des pages (groupes de question) précédentes
Salut,

1. Le gestionnaire d'expression passe sur le texte des questions avec QID etc ...
2. Utiliser jquery , c'est beaucoup plus facile
3. extensions.sondages.pro/questions-updati...sily-add-javascript/

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).
An error happen ? Before make a new topic : remind the Debug mode .

Please Log in to join the conversation.

More
5 months 2 weeks ago #153890 by Morrox
Morrox replied the topic: accès au réponses des pages (groupes de question) précédentes
J'ai finalement réussi à faire ce que je voulais grâce à la mise en place d'un cookie...

Je m'explique si jamais ça peut aider quelqu'un, cette solution marche pour moi sachant que je suis en groupe par groupe avec index complet et que toutes mes questions sont de type radio sans réponse prédéfinie.

j'initialise un Array qui contient autant d'Array que j'ai de groupe de question (+ un array qui servira pour la redirection) dans une equation situé dans le premier groupe sur lequel le candidat "arrive" (en cliquant sur suivant à la page d’accueil du questionnaire) et je le stock dans un cookie.

J'ai ajouté un attribut onClick sur les boutons de navigation et ceux de l'index de sorte à stocker à chaque changement de groupe de question le numéro des questions où l'input de la réponse est une chaîne vide dans mon cookie.

Si le candidat se trouve sur le dernier groupe ( celui qui me sert de "résumé" ) alors j'affiche dans chaque div (une div par groupe) le nombre de question non répondu avec une liste de lien pour chaque questions non répondu si il y a des questions non répondu, si non je cache la div du groupe.

Lorsque le candidat clique sur le lien une fonction onClick avec comme paramètre le groupe et le numéro de question va stocker dans le dernier Array (celui qui sert pour la redirection) de mon Array le numéro de la question puis simuler un clic sur le button de l'index correspondant au groupe.

Là le candidat arrive donc sur la page du groupe et dans le document.ready je vérifie si un numéro de question est stocké dans le dernier Array de redirection et si c'est le cas j’effectue un scroll sur la question et je retire le numéro.

Please Log in to join the conversation.

Moderators: Nickko

Start now!

Just create your account and start using Limesurvey today.

Register now