IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

JavaScript Discussion :

Problème écriture dans une dans une textarea (caractères)


Sujet :

JavaScript

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    801
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 801
    Points : 314
    Points
    314
    Par défaut Problème écriture dans une dans une textarea (caractères)
    Bonjour à tous,
    j'ai un problème qui m'embête beaucoup.
    Je mets dans un tableau un texte (ici, uniquement une valeur du tableau).

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    MailTemplate.push('La commande <numero PO> (<NB> lignes) reçue le <DATE> est en erreur ZSDG004.|Message erreur : <MESSAGE ERREUR>.|Organisation commerciale / Division destinatrice de ce message commande EDI : <CODE SUPPLIER SGA>.|Identifiant donneur ordre(sp) / Livré(sh) de ce message : <Identifiant AG/DP>|Les informations texte de ce message liées au livré sont : |<INFO TEXTE EDIFACT>|Ce message est identifié comme provenant <DESCRIPTION EMETTEUR>|Le document Interface EDI/SAP en erreur porte le <N° IDOC>.||Merci de nous donner votre accord pour paramétrage de ce nouveau partenaire en nous communiquant les comptes SAP Donneur ordre et Livré ou de donner la suite commerciale qui convient en nous informant de celle-ci.|Pour information et bonne suite.|Cordialement|');
    Et je veux, en cliquant sur un bouton par exemple, mettre ce texte dans un textarea.
    Mais il semblerait que j'ai un souci avec quelques caractères que javascript doit pas aimé.
    Lorsque j'ai un texte plus simple (par ex: bonjour à tous !!), ça fonctionne bien. Mais pas avec ce texte.

    Pouvez vous m'aider ???


    Merci pour vos réponses !!!!

  2. #2
    Expert éminent

    Avatar de denisC
    Profil pro
    Développeur Java
    Inscrit en
    Février 2005
    Messages
    4 050
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : Service public

    Informations forums :
    Inscription : Février 2005
    Messages : 4 050
    Points : 7 641
    Points
    7 641
    Par défaut Re: Problème écriture dans une dans une textarea (caractères
    Citation Envoyé par LE NEINDRE
    Pouvez vous m'aider ???
    Est-ce que tu peux nous montrer le code JavaScript généré par ta commande (en regardant les sources de ta page). Il doit probablement y a avoir un caractère spécial qui casse tout....

  3. #3
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 644
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 644
    Points : 66 671
    Points
    66 671
    Billets dans le blog
    1
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    MailTemplate.push(escape'La commande <numero PO> (<NB> lignes) reçue le <DATE> est en erreur ZSDG004.|Message erreur : <MESSAGE ERREUR>.|Organisation commerciale / Division destinatrice de ce message commande EDI : <CODE SUPPLIER SGA>.|Identifiant donneur ordre(sp) / Livré(sh) de ce message : <Identifiant AG/DP>|Les informations texte de ce message liées au livré sont : |<INFO TEXTE EDIFACT>|Ce message est identifié comme provenant <DESCRIPTION EMETTEUR>|Le document Interface EDI/SAP en erreur porte le <N° IDOC>.||Merci de nous donner votre accord pour paramétrage de ce nouveau partenaire en nous communiquant les comptes SAP Donneur ordre et Livré ou de donner la suite commerciale qui convient en nous informant de celle-ci.|Pour information et bonne suite.|Cordialement|');
    puis en affectation de innerHTML
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     unescape(MailTemplate[i])

  4. #4
    Expert éminent

    Avatar de denisC
    Profil pro
    Développeur Java
    Inscrit en
    Février 2005
    Messages
    4 050
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : Service public

    Informations forums :
    Inscription : Février 2005
    Messages : 4 050
    Points : 7 641
    Points
    7 641
    Par défaut
    Attention, si il y a réellement le caractère < dans le texte, ça ne marchera peut-être quand même pas SF.
    En effet, < est un caractère hyper-reservé de XML.

    à vérfier....

  5. #5
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 644
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 644
    Points : 66 671
    Points
    66 671
    Billets dans le blog
    1
    Par défaut
    un replace pardessus ?

  6. #6
    Expert éminent

    Avatar de denisC
    Profil pro
    Développeur Java
    Inscrit en
    Février 2005
    Messages
    4 050
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : Service public

    Informations forums :
    Inscription : Février 2005
    Messages : 4 050
    Points : 7 641
    Points
    7 641
    Par défaut
    Citation Envoyé par SpaceFrog
    un replace pardessus ?
    A mon avis, ça doit être fait coté serveur. Parcequ'une fois avec un < au milieu du texte d'une page HTML t'es mort.....

    Enfin, c'est une possibilité

  7. #7
    Membre averti
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    801
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 801
    Points : 314
    Points
    314
    Par défaut
    Alors j'ai changé le < et > par - (d'après les remarques de DenisC)

    Voilà ce que donne ma page source pour ce texte:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    MailTemplate.push(escape 'La commande -NUMERO PO- (-NB- lignes) reçue le -DATE- est en erreur ZSDG004.|Message erreur : -MESSAGE ERREUR-.|Organisation commerciale / Division destinatrice de ce message commande EDI : -CODE SUPPLIER SGA-.|Identifiant donneur ordre(sp) / Livré(sh) de ce message : -Identifiant AG/DP-|Les informations texte de ce message lies au livré sont : |-INFO TEXTE EDIFACT-|Ce message est identifié comme provenant -DESCRIPTION EMETTEUR-|Le document Interface EDI/SAP en erreur porte le -N IDOC-.||Merci de nous donner votre accord pour paramtérage de ce nouveau partenaire en nous communiquant les comptes SAP Donneur ordre et Livré ou de donner la suite commerciale qui convient en nous informant de celle-ci.|Pour information et bonne suite.|Cordialement|');
    Et avec les remarques de SpaceFrog, j'ai utiliser escape et unescape
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    function DisplayMailTemplate(id_mail_template){
     
    document.getElementById('Textarea_mail').innerHTML=unescape(MailTemplate[id_mail_template]);
    }
    </script>
    Mais ça ne fonctionne toujours pas ???
    Que fais je de mal ??

  8. #8
    Membre actif Avatar de Cpas2latarte
    Inscrit en
    Janvier 2006
    Messages
    237
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 237
    Points : 255
    Points
    255
    Par défaut
    Pourquoi ne pas utilier un bon vieux DIV avec un contenteditable ?

  9. #9
    Membre averti
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    801
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 801
    Points : 314
    Points
    314
    Par défaut
    Cpas2latarte a dit:
    Pourquoi ne pas utilier un bon vieux DIV avec un contenteditable ?
    Comment ça marche ça ?

  10. #10
    Membre actif Avatar de Cpas2latarte
    Inscrit en
    Janvier 2006
    Messages
    237
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 237
    Points : 255
    Points
    255
    Par défaut
    attend je te pond un petit exemple et je tenvoi tous ça

  11. #11
    Membre averti
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    801
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 801
    Points : 314
    Points
    314
    Par défaut
    Un petit exemple avec mon texte qui pose problème ??

    J'ai testé ce quétais le div contenteditable.... C marrant, je ne connaisais pas !!!

  12. #12
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 644
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 644
    Points : 66 671
    Points
    66 671
    Billets dans le blog
    1
    Par défaut
    ça marche sous autre chose qu'IE ?
    c'est pas une autre syntaxe pour firefox ???
    j'ai un doute ...

  13. #13
    Membre actif Avatar de Cpas2latarte
    Inscrit en
    Janvier 2006
    Messages
    237
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 237
    Points : 255
    Points
    255
    Par défaut
    Effectivement, la grenouille de l'espace à raison. il samble que cela ne fonctione que avec IE :(

    j'aurais pourant juré que c'etait dans la DOM. Comme quoi...

    Je m'en vais la consulter cette dom, pour voir s'il y à un equiv et pour ne pas m'endormir trop idiot ce soir

  14. #14
    Membre averti
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    801
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 801
    Points : 314
    Points
    314
    Par défaut
    ok, j'ai testé avec <>, en remplaçant par [] et en utilisant escape et unescape, ça fonctionne.

    Donc je confirme que <> ça pose problème.

    Mais moi ce que je voulais faire à la limite, c'est un <div contenteditable >
    et mettre des couleurs (par exemple couleur rouge entre le balises []) pour bien montrer qu'il faut le changer. Mais si on nepeut pas utiliser les <>, comment faire ????


    Comment fair epour gérer les retour chariot. (pour l'instant je remplace (coté serveur en perl) les retours chariot par | et ensuite, du côté client, j'utilise javascript pour remplacer | par \r (mais ça ne fonctionne pas)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    MailTemplate[id_mail_template].replace(/\|/g,"\\r");
    ????

  15. #15
    Membre actif Avatar de Cpas2latarte
    Inscrit en
    Janvier 2006
    Messages
    237
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 237
    Points : 255
    Points
    255
    Par défaut
    tu peux remplacer les retour chariot par des <BR/>, les < par des &lt;
    les > par des &gt;

  16. #16
    Membre averti
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    801
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 801
    Points : 314
    Points
    314
    Par défaut
    Citation Envoyé par Cpas2latarte
    tu peux remplacer les retour chariot par des <BR/>, les < par des &lt;
    les > par des &gt;

    Excuse moi, je dois être un peu idiot:

    Lorsque je fais :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    print "var b=unescape(MailTemplate[id_mail_template].replace(/\\|/g,\"<BR/>\"));";
    print "document.getElementById('Textarea_mail').innerHTML=b;";
    ça ne fonctionne pas ? J'ai toujours afficher les |.
    Pourquoi ??

    D'autre part, je vais tester les &lt et &gt !!!

  17. #17
    Membre actif Avatar de Cpas2latarte
    Inscrit en
    Janvier 2006
    Messages
    237
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 237
    Points : 255
    Points
    255
    Par défaut
    j'ai l'impression que ton expression régulière a une erreur :
    dans une expresion régulière le | est un ou logique
    pour indique que c'est le caractère que tu veux et non l'opération ou, il faut faire par exemple [|]
    ce qui donne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    replace(/[|]/g,\"<BR/>\"))
    la sequence "\\|" -> je ne sais pas a quoi ça correspond

  18. #18
    Membre averti
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    801
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 801
    Points : 314
    Points
    314
    Par défaut
    Ah ok merci, j'essaie ça !!!

    Le \\|, c'est parce que je code en perl. Et donc j'avais besoin d'échapper le caractère \

    Meric pour ton aide, j'essaie.

  19. #19
    Expert éminent

    Avatar de denisC
    Profil pro
    Développeur Java
    Inscrit en
    Février 2005
    Messages
    4 050
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : Service public

    Informations forums :
    Inscription : Février 2005
    Messages : 4 050
    Points : 7 641
    Points
    7 641
    Par défaut
    Citation Envoyé par LE NEINDRE
    Citation Envoyé par Cpas2latarte
    tu peux remplacer les retour chariot par des <BR/>, les < par des &lt;
    les > par des &gt;

    D'autre part, je vais tester les &lt et &gt !!!
    Ce remplacement doit être fait coté serveur!!!!!

    Je te conseille de remplacer directement en PERL les < par des &amp;lt;, les > par des &amp;gt; et les retours chariots par des &lt;br&gt;

    (si ça marche, je me fais curé, enfin, sauf si ça marche....)

  20. #20
    Membre averti
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    801
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 801
    Points : 314
    Points
    314
    Par défaut
    DenisC a dit
    (si ça marche, je me fais curé, enfin, sauf si ça marche....)
    D'après ton avatar, tu a déjà la soutane

    Je vais essayer de faire tous les remplacement du côté serveur.

    Merci pour votre aide !!

Discussions similaires

  1. Réponses: 7
    Dernier message: 27/02/2021, 17h57
  2. [XL-2010] Copie d'un tableau d'une feuille à une autre : une cellule ne se recopie pas
    Par mchouv dans le forum Macros et VBA Excel
    Réponses: 9
    Dernier message: 25/07/2014, 13h47
  3. Réponses: 2
    Dernier message: 02/07/2014, 11h51
  4. [RegExp] Détecter des combinaisons dans une chaine une par une
    Par vermine dans le forum Général JavaScript
    Réponses: 6
    Dernier message: 08/06/2010, 14h22
  5. [emailing] Problème lors d'envoi d'une newsletter à une adresse @hotmail
    Par jonbymusic dans le forum Balisage (X)HTML et validation W3C
    Réponses: 2
    Dernier message: 21/03/2007, 19h02

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo