Contenu d'un TextArea dans paramètres fonctions

Contenu d'un TextArea dans paramètres fonctions - HTML/CSS - Programmation

Marsh Posté le 26-03-2009 à 17:43:47    

Bonjour tout le monde,
 
Je peine à faire un appel à une fonction javascript :
function AffichageTxt(texte){
}
 
 
l'instantiation de cette méthode se fait de la manière suivante :
AffichageTxt('<?=$texteAff?>');
 
 
hors mon $texteAff contient la récupération d'un textearea :
il contient une chaine de ce genre :
 
Ceci est un  
Exemple d'instantiation
d'une méthode
 
 
et donc  sur l'instantiation ça donne :  
 
AffichageTxt('Ceci est un  
Exemple d'instantiation
d'une méthode');
 
ce qui fait planter javascript, en disant que ')' est attendu.
 
Comment est-ce qu'on peut gérer ces retours de ligne pour que ça se repercute pas sur l'instantiation.
 
Je vous remercie

Reply

Marsh Posté le 26-03-2009 à 17:43:47   

Reply

Marsh Posté le 26-03-2009 à 19:40:32    

Utilise nl2br, çà convertira tes sauts de lignes en br :

Code :
  1. AffichageTxt('<?=nl2br($texteAff)?>');

Reply

Marsh Posté le 26-03-2009 à 19:49:16    

Ce n'est pas suffisant, il faut échapper les simples quotes (et par prudence les doubles quote aussi) en rajoutant un \ avant. Et tant qu'à faire, autant le faire aussi avec les saut de lignes => \n et \r.
 
À faire aussi attention si tu utilises cette chaine dans un innerHTML: il faudra échapper les <, > et & en &lt;, &gt; et &amp; (tu n'auras pas ce problème avec document.createTextNode ou en affectant à textarea.value).

Reply

Marsh Posté le 27-03-2009 à 14:17:30    

donc stripslashes addslashes, htmlspecialchars et nl2br


Message édité par Profil supprimé le 27-03-2009 à 14:18:00
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed