Check out the LimeSurvey source code on GitHub!
Welcome, Guest
Username: Password:

TOPIC: Pre remplir depuis une table d'invitation

Pre remplir depuis une table d'invitation 2 years 10 months ago #104605

  • gabriel01
  • gabriel01's Avatar
  • Offline
  • Senior Lime
  • Posts: 52
  • Thank you received: 4
  • Karma: 2
Bonjour à tous,

Je dispose d'un questionnaire dont :

surveyid : 914725
gid : 951
qid : 19224 de type "Multiples zones de texte court". Les id des sous-questions sont SQ001, SQ003, SQ003 et SQ004

Au l’exécution du questionnaire je souhaite que les sous-questions SQ001, SQ003 et SQ003 se remplissent depuis les champs de la table d'invitations. Ceci marche sans problème avec l'intégration de java script dans la source de la question et avec des codes comme
$('#answer914725X951X19224SQ002').val('{TOKEN:EMAIL}');

Mais étant donnée que je donne aux répondants la possibilité de revenir plus tard sur ces champs pour les mettre à jour, je rencontre maintenant un problème car, à chaque chargement du questionnaire, les valeurs, mises à jour par les répondants, sont remplacées par les valeurs par défaut, c-a-d, les valeurs issues de la table d'invitations.

Avez-vous une solution qui me permettrait de dire, lors de rechargement du questionnaire par le répondant : "si les champs SQ001, SQ002 et SQ003 sont vides alors les pre-remplir par les valeurs issues des invitations sinon afficher les valeurs saisies par le répondant" ?

J'espère que ma question est claire.
Cordialement,

PS. J'utilise la version 2.00+ Build 131206
Last Edit: 2 years 10 months ago by gabriel01.
The administrator has disabled public write access.

Pre remplir depuis une table d'invitation 2 years 10 months ago #104610

  • Nickko
  • Nickko's Avatar
  • Offline
  • LimeSurvey Team
  • Posts: 2847
  • Thank you received: 373
  • Karma: 81
Ajoute une condition dans ton jacascript pour tester si le champ est vide et ne modifie le champ que s'il l'est
Nickko
Ergonome / Usability expert
The administrator has disabled public write access.

Pre remplir depuis une table d'invitation 2 years 10 months ago #104611

  • gabriel01
  • gabriel01's Avatar
  • Offline
  • Senior Lime
  • Posts: 52
  • Thank you received: 4
  • Karma: 2
Nickko wrote:
Ajoute une condition dans ton jacascript pour tester si le champ est vide et ne modifie le champ que s'il l'est
Ce que j'essaie de faire depuis ce matin mais sans succès ! :blush:
The administrator has disabled public write access.

Pre remplir depuis une table d'invitation 2 years 10 months ago #104613

  • Nickko
  • Nickko's Avatar
  • Offline
  • LimeSurvey Team
  • Posts: 2847
  • Thank you received: 373
  • Karma: 81
Moi j'essaierais un truc du genre (mais je n'y connais rien en Jquery). if($('#answer914725X951X19224SQ002').val()!=""){$('#answer914725X951X19224SQ002').val('{TOKEN:EMAIL}');}
Nickko
Ergonome / Usability expert
Last Edit: 2 years 10 months ago by Nickko.
The administrator has disabled public write access.

Pre remplir depuis une table d'invitation 2 years 10 months ago #104614

  • gabriel01
  • gabriel01's Avatar
  • Offline
  • Senior Lime
  • Posts: 52
  • Thank you received: 4
  • Karma: 2
Nickko wrote:
Moi j'essaierais un truc du genre (mais je n'y connais rien en Jquery). if($('#answer914725X951X19224SQ002').val()!=""){$('#answer914725X951X19224SQ002').val('{TOKEN:EMAIL}');}

Non, ça ne fonctionne pas :(
The administrator has disabled public write access.

Pre remplir depuis une table d'invitation 2 years 10 months ago #104615

  • Nickko
  • Nickko's Avatar
  • Offline
  • LimeSurvey Team
  • Posts: 2847
  • Thank you received: 373
  • Karma: 81
tu as essayé de débugguer avec des "alert" ?

genre alert($('#answer914725X951X19224SQ002').val()) retourne quoi ?
Nickko
Ergonome / Usability expert
The administrator has disabled public write access.
The following user(s) said Thank You: gabriel01

Pre remplir depuis une table d'invitation 2 years 10 months ago #104617

  • gabriel01
  • gabriel01's Avatar
  • Offline
  • Senior Lime
  • Posts: 52
  • Thank you received: 4
  • Karma: 2
le code
$('#answer914725X951X19224SQ002').val('{TOKEN:FIRSTNAME}');
alert($('#answer914725X951X19224SQ002').val());

m'affiche le prénom ! à priori mon code java script fonctionne comme indiqué dans mon premier message !
The administrator has disabled public write access.

Pre remplir depuis une table d'invitation 2 years 10 months ago #104633

  • Nickko
  • Nickko's Avatar
  • Offline
  • LimeSurvey Team
  • Posts: 2847
  • Thank you received: 373
  • Karma: 81
Il affiche dans une boite de dialogue ou dant la question ?
Si tel est le cas, il faut continuer comme ça a coup d'alert et pas-à-pas.
Nickko
Ergonome / Usability expert
The administrator has disabled public write access.

Pre remplir depuis une table d'invitation 2 years 10 months ago #104687

  • gabriel01
  • gabriel01's Avatar
  • Offline
  • Senior Lime
  • Posts: 52
  • Thank you received: 4
  • Karma: 2
Ton code avec if n'a pas marché ! Mais en mettant $('#answer914725X951X19224SQ002').val(); dans une variable ça a finalement marché ! Voici ce que j'ai mis :
var prenom = $('#answer914725X951X19224SQ002').val();
 
if(prenom == ''){
alert('je suis dedans car le champs Prenom est vide');
$('#answer914725X951X19224SQ002').val('{TOKEN:FIRSTNAME}');
}
else{
alert('pas de besoin Prenom est déjà renseigné');
}

Cordialement,
Last Edit: 2 years 10 months ago by gabriel01.
The administrator has disabled public write access.

Pre remplir depuis une table d'invitation 2 years 10 months ago #104690

  • DenisChenu
  • DenisChenu's Avatar
  • Offline
  • Moderator Lime
  • Posts: 9586
  • Thank you received: 1375
  • Karma: 390
Salut,

et si tu est dans le texte de la question:
var prenom = $('#answer{SGQ}SQ002').val();
 
if(prenom == ''){
alert('je suis dedans car le champs Prenom est vide');
$('#answer{SGQ}SQ002').val('{TOKEN:FIRSTNAME}');
}
else{
alert('pas de besoin Prenom est déjà renseigné');
}
Mais la dernière version accepte directement les valeurs par défaut dans les sous question de type texte. C'est core mieux.
Tu es sur quelle version ?

Denis
PS: {SGQ} va être directement transformé par 914725X951X19224, et si on copie le questionnaire, reprendras le nouveau code INSERTANS.
Assistance on LimeSurvey forum and LimeSurvey core development are on my free time.
I'm not a LimeSurvey GmbH member, professional service on demand (use private message).
Last Edit: 2 years 10 months ago by DenisChenu.
The administrator has disabled public write access.

Pre remplir depuis une table d'invitation 2 years 10 months ago #104691

  • gabriel01
  • gabriel01's Avatar
  • Offline
  • Senior Lime
  • Posts: 52
  • Thank you received: 4
  • Karma: 2
Merci Denis !

J'avoue que je n'ai pas tout saisi de ta réponse !
J'ai la version 2.00+ Build 131206

Cordialement,
The administrator has disabled public write access.

Pre remplir depuis une table d'invitation 2 years 10 months ago #104694

  • DenisChenu
  • DenisChenu's Avatar
  • Offline
  • Moderator Lime
  • Posts: 9586
  • Thank you received: 1375
  • Karma: 390
Assistance on LimeSurvey forum and LimeSurvey core development are on my free time.
I'm not a LimeSurvey GmbH member, professional service on demand (use private message).
The administrator has disabled public write access.
The following user(s) said Thank You: gabriel01

Pre remplir depuis une table d'invitation 2 years 10 months ago #104697

  • gabriel01
  • gabriel01's Avatar
  • Offline
  • Senior Lime
  • Posts: 52
  • Thank you received: 4
  • Karma: 2
Je viens de tester et ça marche :laugh:
Je vais lire les liens que tu m'a communiqués.

Bonne journée,
The administrator has disabled public write access.
Moderators: Nickko
Time to create page: 0.268 seconds
Imprint                   Privacy policy         General Terms & Conditions         Revocation information and revocation form