Caractère d'achappement en Javascript.

Caractère d'achappement en Javascript. - HTML/CSS - Programmation

Marsh Posté le 23-12-2007 à 14:42:46    

Bonjour,  
 
J'essaye de créer une fonction javascript qui prend en paramètre une chaine de caractère et qui va la recopier dans la "value" d'un champ input texte...
 
La fonction fonctionne sauf lorsque la chaine (venant d'un variable php) contient le caractère appostrophe... Logique puisque ma fonction javacript est alors de la forme : recopieTexte('mon texte avec l'apostrophe');
 
J'ai essaye de replacer mon ' par un \' mais ca ne fonctionne pas non plus...
 
Auriez vous une solution.
 
Merci d'avance.


---------------
Mon topic de vente http://forum.hardware.fr/hfr/Achat [...] 9217_1.htm  -- Mon Feed-Back : http://forum.hardware.fr/hfr/Achat [...] 0553_1.htm
Reply

Marsh Posté le 23-12-2007 à 14:42:46   

Reply

Marsh Posté le 23-12-2007 à 14:47:38    

Au niveau de php, passe ta chaîne dans la fonction htmlentities()
http://fr.php.net/htmlentities


---------------
-- Debian -- Le système d'exploitation universel | Le gras c'est la vie! | /(bb|[^b]{2})/
Reply

Marsh Posté le 23-12-2007 à 14:53:50    

Heu, ca marche comment ??? Ca va me convertir mes ' en " ??? Mais je n'aurais plus ma chaine de caractère originale ?


---------------
Mon topic de vente http://forum.hardware.fr/hfr/Achat [...] 9217_1.htm  -- Mon Feed-Back : http://forum.hardware.fr/hfr/Achat [...] 0553_1.htm
Reply

Marsh Posté le 23-12-2007 à 14:56:24    

Fais au moins un essais!!!
Avant d'envoyer ta chaîne vers la sortie avec php, tu la passe dans htmlentities().
Un petit exemple :

Code :
  1. <?php
  2.  $string = 'Je suis une chaîne avec des quote """"';
  3.  echo '<input type="text" value="'.htmlentities($string).'" />';
  4. ?>


Tu verras que ça fonctionne très bien.


Message édité par dwogsi le 23-12-2007 à 14:56:57

---------------
-- Debian -- Le système d'exploitation universel | Le gras c'est la vie! | /(bb|[^b]{2})/
Reply

Marsh Posté le 23-12-2007 à 15:03:25    

Ca marche en effet avec les " mais pas avec les '
 
D'autre part, est ce qu'il existe un truc du même style mais avec les retour chariots ? Pour les textarea ?


---------------
Mon topic de vente http://forum.hardware.fr/hfr/Achat [...] 9217_1.htm  -- Mon Feed-Back : http://forum.hardware.fr/hfr/Achat [...] 0553_1.htm
Reply

Marsh Posté le 23-12-2007 à 15:08:33    

kolbek a écrit :

Ca marche en effet avec les " mais pas avec les '


Et si tu prenais le temps de lire la doc dont je t'ai donné le lien?!
C'est pourtant pas compliqué...
Un p'tit effort quand même, ça va pas te tomber dessus tout cuit!!!
 

Citation :

Comme htmlspecialchars(), cette fonction prend un deuxième argument optionnel, qui indique comment doivent être traités les guillemets doubles et simples. Vous pouvez utiliser l'une des constantes suivantes la valeur par défaut étant ENT_COMPAT :
ENT_COMPAT Convertit les guillemets doubles, et ignore les guillemets simples
ENT_QUOTES Convertit les guillemets doubles et les guillemets simples
ENT_NOQUOTES Ignore les guillemets doubles et les guillemets simples


 

kolbek a écrit :

D'autre part, est ce qu'il existe un truc du même style mais avec les retour chariots ? Pour les textarea ?


C'est à dire? Quel est ton problème exactement?


Message édité par dwogsi le 23-12-2007 à 15:13:58

---------------
-- Debian -- Le système d'exploitation universel | Le gras c'est la vie! | /(bb|[^b]{2})/
Reply

Marsh Posté le 23-12-2007 à 18:53:46    

Ok ok merci, j'avais effectivement pas tout lu...

 

L'autre problème est résolu avec un str_replace mais pour l'apostrophe ça ne fonctionne pas...

 

Dans le source, mon ' est bien remplacée mais au finale javascript prend toujours le code comme un ' et donc la fin de ma chaine...


Message édité par kolbek le 23-12-2007 à 19:16:33

---------------
Mon topic de vente http://forum.hardware.fr/hfr/Achat [...] 9217_1.htm  -- Mon Feed-Back : http://forum.hardware.fr/hfr/Achat [...] 0553_1.htm
Reply

Sujets relatifs:

Leave a Replay

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