Pb avec addslash
Résolu
ephelya
Messages postés
296
Statut
Membre
-
ephelya Messages postés 296 Statut Membre -
ephelya Messages postés 296 Statut Membre -
Bonjour,
Je récupère avec ajax des infos que je dois afficher ds un champ iput. Mon pb c'est que lorsqu'il y a une apostrophe, ça me coupe la chaîne. Mais lorsque je fais valeur = valeur.replace(/'/g, "\\'"); ça m'affiche la valeur avec le backslash... Comment je peux contourner le problème ?
Merci d'avance pour votre aide !
Je récupère avec ajax des infos que je dois afficher ds un champ iput. Mon pb c'est que lorsqu'il y a une apostrophe, ça me coupe la chaîne. Mais lorsque je fais valeur = valeur.replace(/'/g, "\\'"); ça m'affiche la valeur avec le backslash... Comment je peux contourner le problème ?
Merci d'avance pour votre aide !
3 réponses
-
Bonjour,
Tu peux utiliser des doubles quotes (guillemets) pour entourer le contenu de tes variables.. tu auras moins de soucis.alert("même avec l'apostrophe...ça marche !");
Si tes données viennent de PHP, tu peux également utiliser du htmlspecialchar et/ou du htmlentities
Mais bon.. sans voir ton code..impossible de t'en dire plus.
-
En fait je récupère les données en ajax et sont parfaites à l'arrivée (ds le console.log), c'est uniquement qd je cherche à m'en servir pr mettre à jour un input que ça pose pb. Pour le moment, je ne sais pas par quel miracle mais l'erreur ne se produit plus alors que je n'ai touché à rien...
Bonne nouvelle mais je déteste ne pas comprendre, pcq je ne peux pas être sûre que ça ne se reproduise pas Mais merci quand même ! :-) -
Au cas où :
Dans l'hypothèse que tu encodes en JSON tes données...
$.ajax({ url: 'url.php', type: 'POST', data: data, success: function(data){ var parsedjson = JSON.parse(data); console.log(escapeHtml(addslashes(parsedjson.response))); } }); function addslashes(string) { return string.replace(/\\/g, '\\\\'). replace(/\u0008/g, '\\b'). replace(/\t/g, '\\t'). replace(/\n/g, '\\n'). replace(/\f/g, '\\f'). replace(/\r/g, '\\r'). replace(/'/g, '\\\''). replace(/"/g, '\\"'); } function escapeHtml(text) { var map = { '&': '&', '<': '<', '>': '>', '"': '"', "'": ''' }; return text.replace(/[&<>"']/g, function(m) { return map[m]; }); }