Créer et remplir un champ dans lime_survey_4###

More
3 years 5 months ago #104002 by bermone
bermone created the topic: Créer et remplir un champ dans lime_survey_4###
Bonjour,

Je développe en ce moment une application où chaque utilisateur est définie par son identifiant unique. Ce identifiant est la clé pour la jointure entre plusieurs élément d'enquête de l'application.
J'aime de ce fait créer un champ 'uid' dans la table lime_survey_(code de mon questionnaire) qui me permettra de poser une condition d'évolution lors de la réponse aux enquetes de l'application que je développe.
Pour faire simple je voudrais forcer les utilisateurs de mon appli à terminer la reponse du questionnaire lime survey avant de passer à la réponse d'un autre genre de questionnaire qui n'est pas du lime survey.

Pourriez vous m'aider à créer ce champ 'uid' au demarrage du questionnaire par un user?

bien cordialement

Please Log in to join the conversation.

More
3 years 5 months ago #104158 by bermone
bermone replied the topic: Créer et remplir un champ dans lime_survey_4###
Bonjour,

J'ai trouvé la solution pour ceux à qui ça pourrait intéresser.

Posons :
Table : correspond à la table 'lime_survey_(Code)'. C'est la table où est enregistré toutes les réponses au questionnaire.
Code : Correspond à l'identifiant du questionnaire
N : Représente le nombre d'enregistrement de 'Table' correspondant à un membre inscrit. Chaque membre inscrit est défini par un identifiant unique ('UID')
n : Correspond au nombre d'enregistrement dans 'Table'
Q : Correspond à l'identifiant de la question référence. (Cette question référence est une question cachée que j'ai crée pour facilité la transition de l'information")

J'ai créé une page php avec le lien du questionnaire en iframe. Les membres de l'application répondent au questionnaire à travers cette page. A l'ouverture de la page:
  1. Vérification enregistrements de 'Table'
    Dans un premier temps, le systeme vérifie l'état de Table. Pour se faire, il détermine n avec la fonction mysql_num_rows de php. Si n=0, c'est qu'il n'y a eu aucune réponse à notre questionnaire, on crée alors le champ uid. Si n!=0 alors il y a eu des réponses au questionnaire, par conséquent, le champ uid a été créé.
  2. Mise à jour du champ 'uid'
    Etant donnée qu'on peut pré-remplir un champ limesurvey depuis l'url du questionnaire
    - http://localhost/limesurvey/index.php/Code/lang-fr?Code&Q=UID
    Cette requête 'GET' donne pour valeur 'UID' à la question 'Q'. La suite de la démarche est de faire une mise à jour du champ uid de 'Table' avec pour valeur celle de la question 'Q'. Pourquoi cette manipulation? Tout simplement parce que j'ai remarqué que la question 'Q' se vide et passe à 'null' par la suite. Ne me demandez pas pourquoi, je ne saurai vous répondre.
  3. Réajustement de 'Table'
    J'ai pu constater que limesurvey fonctionne au cookies. C'est à dire que chaque enregistrement fait référence a un cookie à un instant 't'. Ce qui peut être embêtant si l'on souhaite que chaque enregistrement corresponde à un membre inscrit de notre application.
    Pour palier à cette difficulté, j'ai créer un script ajax, qui avec php vont quotidiennement:
    • Calculer N
    • Si N > 1, supprimer le plus vieux enregistrement où submitdate = 'Null'
    [/ul]

Bon, voila comment j'ai réussi à résoudre mon problème. Ce marche très bien. J'espère que ça servira à d'autres. Et si vous pensez pouvoir optimiser la démarche, n'hésitez pas à laisser un commentaire

Please Log in to join the conversation.

More
3 years 5 months ago #104180 by DenisChenu
DenisChenu replied the topic: Créer et remplir un champ dans lime_survey_4###
Salut,

Oui, je fais aussi avec l'adresse email pour la recherche des fois.
A partir du moment ou tu as accès à la BDD, et que tu sais faire un peu de PHP :).

Par contre : Forum FR

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 .
The following user(s) said Thank You: bermone

Please Log in to join the conversation.

Moderators: Nickko

Start now!

Just create your account and start using Limesurvey today.

Register now