Comment gérer la casse dans une condition avec une expression régulière ?

More
4 years 4 months ago #90061 by mathieu_sdis59
mathieu_sdis59 created the topic: Comment gérer la casse dans une condition avec une expression régulière ?
Bonjour,
Voilà mon problème : je souhaite ajouter le champs "Arrondissement" quand le champs ville est équivalent à Paris, Lyon ou Marseille.
Dans les conditions, j'utilise donc une expression régulière qui devrait être :
/^(paris|marseille|lyon)/i

Mais le problèmes est que dans les conditions, comme précisé dans la doc, il ne faut pas mettre les '/'.
Donc sans mettre l'ensemble des combinaisons possibles majuscules/minuscules, y'a-t-il une solution simple à mon problème ?

Merci d'avance.

Please Log in to join the conversation.

More
4 years 4 months ago #90173 by DenisChenu
DenisChenu replied the topic: Comment gérer la casse dans une condition avec une expression régulière ?
Salut,

Tu utilise les condition ou le gestionnaire d'expressions (ie : l'interface GUI ou "à la main").

Avec le gestionnaire d'expressions, tu peux utiliser :
strcasecmp(QCODE,'lyon') or strcasecmp(QCODE,'marseille') or strcasecmp(QCODE,'paris')
Dans l'"Équation du filtre conditionnel"

Denis

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
4 years 4 months ago - 4 years 4 months ago #90206 by mathieu_sdis59
mathieu_sdis59 replied the topic: Comment gérer la casse dans une condition avec une expression régulière ?
Salut Denis,

Merci pour ta réponse.
En effet, j'ai utilisé une regexp faite "à la main".

J'ai un peu du mal avec le gestionnaire d'expressions, il me génère des codes bizarres qui apparaissent en rouge entouré de rouge du style ;
((58116X52X693SQ002.NAOK != "toto"))

Du coup je décale un peu la question :
- faut-il lui parler directement en PHP dans la case "Équation du filtre conditionnel" ou bien le générateur est-il sensé le faire à notre place ?
- comment connaît-on le QCODE d'une sous-question ?

Merci bien de ton aide.
Last Edit: 4 years 4 months ago by mathieu_sdis59.

Please Log in to join the conversation.

More
4 years 4 months ago #90227 by DenisChenu
DenisChenu replied the topic: Comment gérer la casse dans une condition avec une expression régulière ?
Salut,

le QCODE d'une sous question c'est : CODEDELAQUESTION_CODEDELASOUSQUESTION.

Sinon, si il y a du rouge, cela peux vouloir dire qu'il y a un problème, par exemple sur le code.
Mais passe avant par le fichier de test, quelquefois ce n'est pas mis à jour dans la session.

Denis

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
4 years 4 months ago #90233 by mathieu_sdis59
mathieu_sdis59 replied the topic: Comment gérer la casse dans une condition avec une expression régulière ?
Voilà ce que ça donne :

Filtre conditionnel : strcasecmp(LieuNaissance_Ville, 'lyon') or strcasecmp(LieuNaissance_Ville, 'marseille') or strcasecmp(LieuNaissance_Ville, 'paris')

et le test ne fonctionne pas :
Notice: Undefined index: name in /var/www/limesurvey/replacements.php on line 720

Merci

Please Log in to join the conversation.

More
4 years 4 months ago #90277 by DenisChenu
DenisChenu replied the topic: Comment gérer la casse dans une condition avec une expression régulière ?
Salut,

Ca arrive quelquefois semble t'il même si le code est OK.

Dans ce cas: utiliser le GUI des conditions, indiquer "ta question ou sous question" doit être égal à paris, enregistrer.

Vérifier que c'est OK: copier la partie indidué dnas equation, retourner dans le GUI, supprimer les conditions.
Coller la condition précédente et la remodifier en conséquences.
(strcasecmp(LieuNaissance_Ville, 'lyon') or strcasecmp(LieuNaissance_Ville, 'marseille') or strcasecmp(LieuNaissance_Ville, 'paris'))
(ajoute les ( et ) au début et à la fin, il semble que ca passe mieux.

Va vraiment falloir que je passe du temps à revoir tous ca ....

Denis

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
4 years 4 months ago #90467 by mathieu_sdis59
mathieu_sdis59 replied the topic: Comment gérer la casse dans une condition avec une expression régulière ?
Bonjour Denis,
Je n'ai pas réussi malgré différents tests suite à ta réponse.
Je vais tourner mon questionnaire autrement pour solutionner ce truc.
Merci pour ton aide et joyeux Noël !

Please Log in to join the conversation.

More
4 years 4 months ago - 4 years 4 months ago #90500 by mathieu_sdis59
mathieu_sdis59 replied the topic: Comment gérer la casse dans une condition avec une expression régulière ?
Un peu de repos, ça fait du bien ! Après avoir installé la version 2, j'ai recreusé le sujet et voilà la solution simple :
((strcasecmp(ville_naissance, 'lyon') == 0) or (strcasecmp(ville_naissance, 'paris') == 0) or (strcasecmp(ville_naissance, 'marseille') == 0))
Bref, il manquait juste les "==0" ...
Bonne fin d'année.
Last Edit: 4 years 4 months ago by mathieu_sdis59.

Please Log in to join the conversation.

More
4 years 3 months ago #90549 by DenisChenu
DenisChenu replied the topic: Comment gérer la casse dans une condition avec une expression régulière ?
Salut,

L'affichage se fait bien si c'est écrit lyon ou paris ou marseille ?

Si oui, essaye plutot:
!== false

Pour que celui qui écrit " à paris" vois aussi la question.

Denis

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.

Moderators: Nickko

Start now!

Just create your account and start using Limesurvey today.

Register now