Welcome to the LimeSurvey Community Forum

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

Supprimer les caractères spéciaux et les accents dans une expression

  • ludogre
  • ludogre's Avatar Topic Author
  • Offline
  • Junior Member
  • Junior Member
More
3 years 3 months ago #209195 by ludogre
Bonjour,

Je souhaiterais supprimer tous les caractères spéciaux d'une réponse précédente pour l'afficher plus loin dans le questionnaire.
J'ai fait une petit test pour virer les accents sur les "E", les espaces et les "'". Ça parait laborieux.
Code:
{str_replace(
  "É","E",
  str_replace("È","E",
    str_replace(" ","",
      str_replace("'","",
        str_replace("Ê","E",
          str_replace("Ë","E",
            strtoupper(html_entity_decode(nom))
          )
        )
      )
    )
  )
)}

Y-a t-il un moyen de faire ça de façon élégante?
The topic has been locked.
  • DenisChenu
  • DenisChenu's Avatar
  • Offline
  • LimeSurvey Community Team
  • LimeSurvey Community Team
More
3 years 3 months ago #209201 by DenisChenu
Tu pourrais demander aux personnes de rentrer les données sans accents ou ce n'est pas possible ?

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 topic has been locked.
  • Nickko
  • Nickko's Avatar
  • Offline
  • LimeSurvey Community Team
  • LimeSurvey Community Team
More
3 years 3 months ago #209217 by Nickko
Bonjour,

Je viens avec ma casquette d'ergonome, d'expérience, si les gens on l'habitude de taper avec accent, ça sera très difficile de leur faire taper sans accent. De même s'ils utilisent l'auto-complétions du navigateur (je ne sais pas de quelle donnée on parle).

En cherchant 3 secondes, j'ai trouve ça, peut-être une source d'inspiration : stackoverflow.com/questions/990904/remov...string-in-javascript

Nickko
Head of ergonomics, UX & UI.
The topic has been locked.
  • ludogre
  • ludogre's Avatar Topic Author
  • Offline
  • Junior Member
  • Junior Member
More
3 years 3 months ago #209226 by ludogre
Effectivement, ça sera difficile de ne pas avoir de caractères spéciaux et d'accents dans le champs de saisie, car j'ai besoin que la personne saisisse son nom (le vrai avec accent et tout) et de lui renvoyer un code épuré, basé, entre autre, avec son nom.

Nickko: je n'ai pas cherché de solution de formatage avec javascript car je n'ai encore jamais cherché à personnaliser limesurvey de ce côté là.

Je suis néanmoins tombé sur ces pages qui semblent effectivement prometteuses:
- survey-consulting.com/how-to-use-javascr...-template-or-survey/ ;
- manual.limesurvey.org/Workarounds:_Manip...ime_using_Javascript .

Merci pour le lien en tous cas. Car il est vrai que je ne suis pas encore trop familié du javascript.

Je reviens par ici après expérimentations.
The topic has been locked.
  • DenisChenu
  • DenisChenu's Avatar
  • Offline
  • LimeSurvey Community Team
  • LimeSurvey Community Team
More
3 years 3 months ago #209229 by DenisChenu
Sinon, en théroie : tu doit pouvoir utiliser


str_replace(["É","È","Ê"],["E","E","E"],strtoupper(html_entity_decode(nom)))

Je dis bien en théorie : j'ai pas testé , mais le PHP l'accepte

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 topic has been locked.
  • ludogre
  • ludogre's Avatar Topic Author
  • Offline
  • Junior Member
  • Junior Member
More
3 years 3 months ago #209250 by ludogre
C'est la solution que j'aurai rêver mettre en place. Seulement pour les "[" et "]", Limesurvey indique: "Syntaxe non pris en charge".

:-|
The topic has been locked.
  • DenisChenu
  • DenisChenu's Avatar
  • Offline
  • LimeSurvey Community Team
  • LimeSurvey Community Team
More
3 years 3 months ago #209257 by DenisChenu
Ah … m…

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 topic has been locked.
More
3 years 3 months ago #209311 by fradeff
intéressante question

j'ai eu le même problème, mais c'était plus en aval (url de fin -> traité avec php, là on plein d'exemples de regexp pour faire le boulot)

ici il faut du JS; as-tu essayé le script proposé par Nickko?
stackoverflow.com/questions/990904/remov...string-in-javascript
c'est du pur JS, ça devrait faire l'affaire, non?
The following user(s) said Thank You: DenisChenu
The topic has been locked.
  • DenisChenu
  • DenisChenu's Avatar
  • Offline
  • LimeSurvey Community Team
  • LimeSurvey Community Team
More
3 years 3 months ago #209317 by DenisChenu
Vivement la 4 en stable …
manual.limesurvey.org/ExpressionManagerStart

En PHP et en JS : ca devrait aller beaucoup plus vite …

Sur l'urtl de fin : j'aurais carrément redirigé vers un e page PHP perso …

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 topic has been locked.
  • ludogre
  • ludogre's Avatar Topic Author
  • Offline
  • Junior Member
  • Junior Member
More
3 years 3 months ago #209396 by ludogre
Re!

Bon, comme indiqué, je n'avais jamais essayé d'ajouter du javascript à LimeSurvey.

D'après cette page survey-consulting.com/how-to-use-javascr...-template-or-survey/ , il y a deux méthodes. La première me plait bien pour les raisons qui y sont indiqués, et notamment en ce qui me concerne, l'aspect sécurité et la possibilité de réutilisation.

Donc, j'ai réussi à ajouter du javascript à mon thème personnalisé. \o/

J'ai donc ajouté ceci stackoverflow.com/questions/990904/remov...string-in-javascript .

Par contre, je ne sais pas comment le réutiliser.

Je pensais (naïvement) qu'ajouter
{accentsTidy(nom)}
dans la desription de ma question suffirait. Mais ce n'est pas le cas. :-(

Est-ce que vous avez des exemples d'implémentation de ce style de fonctionnalité?

Merci.
The topic has been locked.
  • DenisChenu
  • DenisChenu's Avatar
  • Offline
  • LimeSurvey Community Team
  • LimeSurvey Community Team
More
3 years 3 months ago - 3 years 3 months ago #209413 by DenisChenu
Tu garde cette fonction dans custom.js (ou ou tu l's mis).

Tu ajoute
Code:
$(function() {
    $(".question-container.accentsTidy .text-item > textarea").on("change", function() {
        $(this).val(accentsTidy($(this).val()));
    });
    $(".question-container.accentsTidy .text-item > input:text").on("change", function() {
        $(this).val(accentsTidy($(this).val()));
    });
});
Tu ajoute la classe CSS accentsTidy à la/aux question(s)

Voir :
api.jquery.com/ready/
api.jquery.com/on/
api.jquery.com/val/

Ca met à jour quand l'utilisateur sort de la réponse.

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.
Last edit: 3 years 3 months ago by DenisChenu.
The topic has been locked.
  • ludogre
  • ludogre's Avatar Topic Author
  • Offline
  • Junior Member
  • Junior Member
More
3 years 3 months ago - 3 years 3 months ago #209736 by ludogre
Après quelques errements infructueux, je repasse par ici.Je vous joint mon fichier de groupe de questions ainsi que mon fichier custom.js.Évidemment, n'étant pas familié de javascript et malgré la doc, je n'arrive pas encore à faire fonctionner ça.

File Attachment:

File Name: custom.js.zip
File Size:1 KB

File Attachment:

File Name: limesurvey..._869.lsg
File Size:3 KB
Last edit: 3 years 3 months ago by ludogre. Reason: Manque custom.js
The topic has been locked.
Moderators: Nickko

Lime-years ahead

Online-surveys for every purse and purpose