Welcome to the LimeSurvey Community Forum

Ask the community, share ideas, and connect with other LimeSurvey users!

Indiquer la(le) sous-question(s) qui ne valides pas la regex

  • VictorROYER
  • VictorROYER's Avatar Topic Author
  • Offline
  • New Member
  • New Member
More
2 months 1 week ago #256148 by VictorROYER
Aidez-nous à vous aider et remplissez les cases appropriées :
Votre version de LimeSurvey : Version de votre LimeSurvey : 6.4.1
Votre propre serveur ou LimeSurvey Cloud : propre serveur
Thème :
Regex, Sous Questions, Validation des entrées utilisateurs, Message d'erreur
==================


Bonjour,

J'utilise limesurvey pour gérer mes utilisateurs. J'organise mon enquête avec une question et autant de sous questions que j'ai d'utilisateurs.
Dans le cas où on doit changer une adresse mail, je possède un input et une regex sur cette input pour vérifier que l'entrée utilisateur correspond bien à une adresse mail.

En revanche, je possède beaucoup d'adresses mails et une erreur dans une entrée utilisateur arrive vite.
Je reçois alors un message d'erreur, mais ce dernier ne me donne pas d'indication sur la ligne (sous-question) a corriger.

J'aimerai savoir comment je peux customiser le message d'erreur si un input d'une sous question ne valide pas ma regex pour qu'il m'affiche précisément la ligne qui n'est pas bonne.


Exemple :






Pour le moment, j'ai modifier la ligne 346 du fichier qanda_helper.php :

            $vpopup = gT("One or more questions have not been answered in a valid manner : " . $ia[2] . " You cannot proceed until these answers are valid.");

avec $ia[2] étant le code de ma question, mais j'aimerai y mettre le code de ma sous question, voir si possible le text de ma sous question.

Cordialement

 

Please Log in to join the conversation.

  • DenisChenu
  • DenisChenu's Avatar
  • Offline
  • LimeSurvey Community Team
  • LimeSurvey Community Team
More
2 months 1 week ago #256179 by DenisChenu
Utiliser la validation manuelle de question : manual.limesurvey.org/Question_type_-_Ar..._validation_q_tip.29

Et donc écrire le texte en fonction (je le fait pour vide, ca va plus vite, et c'est pour l'exemple.

{if(is_empty(Q0_SX01_SY0.NAOK),"La valeur en X1, Y1 est obligatoire.")}
{if(is_empty(Q0_SX02_SY0.NAOK),"La valeur en X2, Y1 est obligatoire.")}
{if(is_empty(Q0_SX03_SY0.NAOK),"La valeur en X3, Y1 est obligatoire.")}

Assistance on LimeSurvey forum and LimeSurvey core development are on my free time.
I'm not a LimeSurvey GmbH member, professional service on demand , plugin development .
I don't answer to private message.

Please Log in to join the conversation.

  • VictorROYER
  • VictorROYER's Avatar Topic Author
  • Offline
  • New Member
  • New Member
More
2 months 1 week ago - 2 months 1 week ago #256642 by VictorROYER
Bonjour Denis,

Merci pour ta réponse, je n'ai malheureusement pas réussi à faire fonctionner la validation manuelle de la question.

J'ai vu que quand tu édites une question, tu as 2 sections :

- Équation de validation de question
- Équation de validation des sous-questions

J'ai essayer de faire un test avec ton exemple dans ces 2 sections (en replaçant Q0 par Q2 car l'ID de ma question est Q2)

J'ai essayé avec ces 2 sections et j'ai le même message d'erreurs :

J'ai le message d'erreur : One or more questions have not been answered in a valid manner. You cannot proceed until these answers are valid.

Voici ma configuration :
 

J'ai aussi essayer avec cette configuration, mais j'ai toujours le même message d'erreur
 

Hésite pas si tu veux plus de renseignements,

Cordialement,
Victor ROYER
Last edit: 2 months 1 week ago by VictorROYER. Reason: add one screen capture

Please Log in to join the conversation.

  • DenisChenu
  • DenisChenu's Avatar
  • Offline
  • LimeSurvey Community Team
  • LimeSurvey Community Team
More
2 months 1 week ago #256644 by DenisChenu
C'est à mettre dans la partie astuce : Tip for sub-question validation equation (em_validation_sq_tip)

Et tu met le contrôle dans la partie validation

Par exemple validation

!is_empty(Q2_SX01_SY0.NAOK) and !is_empty(Q2_SX02_SY0.NAOK) and
!is_empty(Q2_SX03_SY0.NAOK)

Mais attention : tu dois AUSSI modifier les codes des sous-questions : je ne peux pas les connaître pour toi : manual.limesurvey.org/Expression_Manager#Qcode_Variable_Naming

Assistance on LimeSurvey forum and LimeSurvey core development are on my free time.
I'm not a LimeSurvey GmbH member, professional service on demand , plugin development .
I don't answer to private message.

Please Log in to join the conversation.

  • VictorROYER
  • VictorROYER's Avatar Topic Author
  • Offline
  • New Member
  • New Member
More
2 months 1 week ago #256647 by VictorROYER
Quand je clique sur "Vérification de la logique", je trouve que le code de mes sous questions sont Q2_[Code] (soit Q2_1 pour la sous question 1, Q2_2 ...)

J'ai mis un screen sur mon post précédent pour te montrer ma tentative, qui me renvoie toujours le même message d'erreur. (je fais un test sur ma première sous question)

D'ailleurs, et étrangement, j'ai ce message d'erreur (One or more questions have not been answered in a valid manner. You cannot proceed until these answers are valid.) même si je ne met rien dans cette section (alors que c'est une question optionnel)

Please Log in to join the conversation.

  • DenisChenu
  • DenisChenu's Avatar
  • Offline
  • LimeSurvey Community Team
  • LimeSurvey Community Team
More
2 months 1 week ago #256649 by DenisChenu
Ah oui, multiple zone de text court.
Sinon : à la base je donne des exemples, pas toujours des solutions.

Bon, tu le fait vie n regexp : alors le gmail.com , à mon avis tu le supprime.

Et pour faire la regexp : le mieux est d'abord de le faire dans l'aide pour pas se tromper :)

mais sinon : le plus simple : manual.limesurvey.org/Expression_Manager#Access_to_Functions :strpos

strpos(Q2_2.NAOK,"@") dans Question validation equation (em_validation_q)
et {if(!strpos(Q2_2.NAOK,"@"),'Vous devez inscrire une adresse de messagerie valide')} dans Tip for whole question validation equation (em_validation_q_tip)

 

 

Assistance on LimeSurvey forum and LimeSurvey core development are on my free time.
I'm not a LimeSurvey GmbH member, professional service on demand , plugin development .
I don't answer to private message.

Please Log in to join the conversation.

  • DenisChenu
  • DenisChenu's Avatar
  • Offline
  • LimeSurvey Community Team
  • LimeSurvey Community Team
More
2 months 1 week ago #256677 by DenisChenu
Sans modification javascript : le message d'erreur de la popup est global/ général.

Tu ne peux afficher autre chose que au niveau de la question en elle même .

Assistance on LimeSurvey forum and LimeSurvey core development are on my free time.
I'm not a LimeSurvey GmbH member, professional service on demand , plugin development .
I don't answer to private message.

Please Log in to join the conversation.

  • VictorROYER
  • VictorROYER's Avatar Topic Author
  • Offline
  • New Member
  • New Member
More
2 months 1 week ago #256679 by VictorROYER
Ah d'accord, peut-être que je vais tenter de modifier le message alros

de base, j'avais trouver ce message d'être dans le fichier php qanda_helper.php

Mais sinon, je n'arrive pas à voir où le message "Please enter a valid email address." s'affiche quand mon entrée utilisateur est fausse.

Please Log in to join the conversation.

  • VictorROYER
  • VictorROYER's Avatar Topic Author
  • Offline
  • New Member
  • New Member
More
2 months 1 week ago #256733 by VictorROYER
Je viens de comprendre mon problème.
Déjà, l'utilisation de em_validation_q_tip est en effet la meilleure solution pour régler mon problème. j'ai fait un test avec le fichier lss de TMSWhite dans cet exemple :
forums.limesurvey.org/forum/can-i-do-thi...alidate-subquestions

Cependant, le message d'erreur apparaît dans le code html quand je fais inspecter, mais pas sur mon écran ( pas de message ni de contour rouge pour me signaler une erreur)
 

La structure de mon enquête créer peut-être cette erreur :
J'ai un groupe avec 2 questions, la première question Q1 permet d'afficher mon tableau avec mes boutons et la question Q2 me permet de créer mes entrées utilisateurs.

D'ailleurs, je remarque que le nom de ma question Q2 n'apparaît aussi pas sur mon enquête, mais est bien présent dans mon code html.
Il s'agit presque d'un autre problème, l'indication de validation de la question Q2 n'apparaît pas s'il y a plusieurs questions dans le groupe.
Dois-je créer un nouveau topic ?

Please Log in to join the conversation.

  • DenisChenu
  • DenisChenu's Avatar
  • Offline
  • LimeSurvey Community Team
  • LimeSurvey Community Team
More
2 months 1 week ago #256788 by DenisChenu
La Q2 est en display:none.

Elle à des conditions ?

Assistance on LimeSurvey forum and LimeSurvey core development are on my free time.
I'm not a LimeSurvey GmbH member, professional service on demand , plugin development .
I don't answer to private message.

Please Log in to join the conversation.

  • VictorROYER
  • VictorROYER's Avatar Topic Author
  • Offline
  • New Member
  • New Member
More
2 months 6 days ago #256852 by VictorROYER
Non,

Condition : { 1 }

Si je retire le display None de ma balise html, la Q2 apparaît sous ma Q1

Or ce n'est pas ce que je veux, je veux que ma Q2 soit à côté de ma Q1 pour former un tableau avec des boutons radio (Q1) + une entrée utilisateur (Q2)

Capture d'écran si je retire le display: none
 

Please Log in to join the conversation.

  • DenisChenu
  • DenisChenu's Avatar
  • Offline
  • LimeSurvey Community Team
  • LimeSurvey Community Team
More
2 months 6 days ago #256867 by DenisChenu
L'erreur s'affiche sur la Q2 : c'est logique.

Tu utilise une bidouille : donc faut adapter.

Place les tests de la Q2 dans les champs de logique de la Q1.

Assistance on LimeSurvey forum and LimeSurvey core development are on my free time.
I'm not a LimeSurvey GmbH member, professional service on demand , plugin development .
I don't answer to private message.
The following user(s) said Thank You: VictorROYER

Please Log in to join the conversation.

Moderators: Nickko

Lime-years ahead

Online-surveys for every purse and purpose