Pb avec addslash
Résolu
ephelya
Messages postés
282
Date d'inscription
Statut
Membre
Dernière intervention
-
ephelya Messages postés 282 Date d'inscription Statut Membre Dernière intervention -
ephelya Messages postés 282 Date d'inscription Statut Membre Dernière intervention -
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.
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.
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 ! :-)
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...
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]; }); }