Welcome, Guest
Username: Password: Remember me

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

Créer et remplir un champ dans lime_survey_4### 8 months 1 week ago #104002

  • bermone
  • bermone's Avatar
  • OFFLINE
  • Fresh Lemon
  • Posts: 2
  • Karma: 0
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
The administrator has disabled public write access.

Créer et remplir un champ dans lime_survey_4### 8 months 3 days ago #104158

  • bermone
  • bermone's Avatar
  • OFFLINE
  • Fresh Lemon
  • Posts: 2
  • Karma: 0
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'

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
The administrator has disabled public write access.

Créer et remplir un champ dans lime_survey_4### 8 months 2 days ago #104180

  • DenisChenu
  • DenisChenu's Avatar
  • OFFLINE
  • Moderator Lime
  • Posts: 6358
  • Thank you received: 824
  • Karma: 245
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
The administrator has disabled public write access.
The following user(s) said Thank You: bermone
Moderators: Nickko
Time to create page: 0.103 seconds
Donation Image