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

Langage PHP Discussion :

[PHP-JS] Génération de code JavaScript et retour à la ligne


Sujet :

Langage PHP

  1. #1
    Nouveau membre du Club
    Inscrit en
    Mars 2004
    Messages
    79
    Détails du profil
    Informations forums :
    Inscription : Mars 2004
    Messages : 79
    Points : 38
    Points
    38
    Par défaut [PHP-JS] Génération de code JavaScript et retour à la ligne
    Bonjour à tous,

    Je développe un site web dans lequel je génère du javascirpt. L'objectif est d'affecter une valeur a un textArea.
    Pour cela je récupère du texte depuis un base mysql (InnoDB - utf8 - utf8_general_ci)

    Voici un extrat de code :

    <script type="text/javascript">

    monTxtArea.value = '<?php echo $monTexteFromMaBase;?>';

    </script>

    Pas de quoi casser des briques me direz vous...
    Le problème c'est que $monTexteFromMaBase contient du texte avec des retour a la ligne '\n' et que lors de l'execution du PHP cela donne un truc du style :

    <script type="text/javascript">

    monTxtArea.value = 'mon texte qui vient de la base avec
    un saut de ligne qui fait tout crouter...';

    </script>


    d'où erreur javascript "unterminated string literal"

    J'ai bien essayé des fonction comme str_replace("\n","",$monTexteFromMaBase) OU str_replace("\\n","",$monTexteFromMaBase) OU
    nl2br($monTexteFromMaBase)

    mais rien n'a faire ça me génère toujours le même code javascript avec la même erreur...
    Alors si quelqu'un a une idée je suis preneur.
    Merci d'avance.

    bonne journée

  2. #2
    Expert éminent sénior
    Avatar de mathieu
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    10 304
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 10 304
    Points : 15 631
    Points
    15 631
    Par défaut
    il faut utiliser la fonction http://php.net/addcslashes comme ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    monTxtArea.value = '<?php echo addcslashes($monTexteFromMaBase, "\r\n\\'");?>';

  3. #3
    Membre expérimenté Avatar de riete
    Homme Profil pro
    DevWeb - Oléiculteur
    Inscrit en
    Avril 2006
    Messages
    1 193
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France

    Informations professionnelles :
    Activité : DevWeb - Oléiculteur
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2006
    Messages : 1 193
    Points : 1 414
    Points
    1 414
    Par défaut
    Je pense qu'il faut que tu regarde d'un peu plus prêt au niveau de l'encodage UTF-8. Les caractères ne sont évidement pas codé de la même manière qu'en ASCII donc...
    Il y a des outils de conversion avec php, ici. S'est un début.
    il y a peut être d'autres méthodes, mais bon
    ----
    L'avenir appartient à ceux dont les salariés se lèvent tôt.

  4. #4
    Membre expérimenté Avatar de riete
    Homme Profil pro
    DevWeb - Oléiculteur
    Inscrit en
    Avril 2006
    Messages
    1 193
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France

    Informations professionnelles :
    Activité : DevWeb - Oléiculteur
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2006
    Messages : 1 193
    Points : 1 414
    Points
    1 414
    Par défaut
    Ah Oooops Mathieu à dégainé plus vite que moi et peut être mieux. J'attends de voir le résultat de tes tentatives, ce sujet m'intéresse.
    A+
    ----
    L'avenir appartient à ceux dont les salariés se lèvent tôt.

  5. #5
    Nouveau membre du Club
    Inscrit en
    Mars 2004
    Messages
    79
    Détails du profil
    Informations forums :
    Inscription : Mars 2004
    Messages : 79
    Points : 38
    Points
    38
    Par défaut
    Mathieu,

    Merci beaucoup. Effectivement cette méthode fonctionne correctement.

    Seul bémol, pour les utilisateurs Linux ou Mac je crains que cela ne fonctionne pas --> \n et pas \r\n.

    Personnellement j'ai Microsoft comme cible donc pas de problèmes.

    Merci encore

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [PHP-JS] Génération de code JavaScript
    Par Gregory.M dans le forum Langage
    Réponses: 7
    Dernier message: 16/05/2009, 11h22
  2. Réponses: 8
    Dernier message: 09/02/2008, 17h21
  3. [PHP-JS] Intégrer un code javascript dans du php
    Par dolf13 dans le forum Général JavaScript
    Réponses: 8
    Dernier message: 27/07/2007, 17h02
  4. [XSLT] Problème de génération de code javascript (inclure) via XSLT
    Par fragmonster dans le forum XSL/XSLT/XPATH
    Réponses: 3
    Dernier message: 23/04/2007, 14h49
  5. [PHP-JS] Supprimer le code javascript d'un code HTML
    Par AlphaYoDa dans le forum Langage
    Réponses: 6
    Dernier message: 21/02/2006, 22h40

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