Précédent   Forum des professionnels en informatique > PHP > Langage > Syntaxe
Syntaxe Forum d'entraide sur la syntaxe de PHP et la POO. Avant de poster -> FAQ syntaxe, Cours d'initiation et cours de POO
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 18/07/2008, 10h22   #1
Membre du Club
 
Avatar de foolib
 
Inscription : juillet 2008
Messages : 110
Détails du profil
Informations personnelles :
Localisation : France, Rhône (Rhône Alpes)

Informations forums :
Inscription : juillet 2008
Messages : 110
Points : 62
Points : 62
Par défaut [PHP-JS] Problème de retour chariot

Bonjour/bonsoir,
j'ai un soucis au niveau de l'instruction suivante:

echo "<script type=\"text/javascript\">alert(\"".$message."\");</script>";

Le problème est que le alert() n'est pas évalué correctement à l'interprétation
en effet, la console FireBug détecte l'erreur suivante :

unterminated string literal

ma variable message contient des \n ce qui a pour effet lors du echo d'écrire dans le fichier source de la page html des retours à la ligne dans la chaine passée en parametre du alert ...
l'interpreteur javascript ne comprend du coup pas l'instruction.

Quelqu'un aurait une idée de comment remédier à ce problème ?
foolib est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/07/2008, 12h24   #2
Expert Confirmé
 
Avatar de Eusebe
 
Inscription : mars 2006
Messages : 1 989
Détails du profil
Informations personnelles :
Âge : 34

Informations forums :
Inscription : mars 2006
Messages : 1 989
Points : 3 606
Points : 3 606
Bonjour,

Tu peux simplement remplacer les retours à la ligne de ta chaîne de caractères...

Par exemple :
Code :
echo '<script type="text/javascript">alert("'.strtr($message, "\r\n", "  ").'");</script>';
Eusebe est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/07/2008, 14h56   #3
Membre du Club
 
Avatar de foolib
 
Inscription : juillet 2008
Messages : 110
Détails du profil
Informations personnelles :
Localisation : France, Rhône (Rhône Alpes)

Informations forums :
Inscription : juillet 2008
Messages : 110
Points : 62
Points : 62
Merci pour ta réponse rapide !

Je suis d'accord, seulement ....
Dans la mesure ou je fais un alert, si je souhaite séparer les informations à afficher par des retours chariot (et pas des espaces ou autres) comment devrais-je procéder ?XD
foolib est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/07/2008, 15h25   #4
Modérateur
 
Avatar de Bisûnûrs
 
Josselin
Développeur Web
Inscription : janvier 2004
Messages : 9 050
Détails du profil
Informations personnelles :
Nom : Josselin
Âge : 29
Localisation : France, Rhône (Rhône Alpes)

Informations professionnelles :
Activité : Développeur Web

Informations forums :
Inscription : janvier 2004
Messages : 9 050
Points : 12 181
Points : 12 181
Il faut juste transformer tes \n dans $message par \\n, ce qui aura pour effet de l'afficher dans le code source et non de l'interpréter.
Bisûnûrs est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/07/2008, 16h00   #5
Membre du Club
 
Avatar de foolib
 
Inscription : juillet 2008
Messages : 110
Détails du profil
Informations personnelles :
Localisation : France, Rhône (Rhône Alpes)

Informations forums :
Inscription : juillet 2008
Messages : 110
Points : 62
Points : 62
Bisûnûrs,
Quelle efficacité !
C'est exactement ce que je cherchais !
Je n'avais plus en tête qu'il est possible d'avoir plusieurs degrés d'échappements
Merci bien

Pour revenir à ce que me suggérait Eusebe, il me semble qu'il faille préférer la méthode str_replace à strtr
s'il s'agit de remplacer littéralement les occurrences d'un caractère dans une chaine
foolib est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 21h40.


 
 
 
 
Partenaires

Hébergement Web