J'ai un problème étrange lors de la récupération de texte formaté en JSON. J'utilise jQuery post
pour envoyer des données (également formatées en JSON) au serveur (qui exécute PHP), ce qui fonctionne bien. Ensuite, lorsque je demande les mêmes données au serveur en utilisant jQuery get
la méthode de rappel ne s'exécute jamais. Cela ne se produit que lorsque les données sont formatées en JSON et qu'elles contiennent un saut de ligne. Lorsque je n'utilise pas le formatage JSON, tout fonctionne bien. Ce qui m'étonne, c'est que le téléchargement des données ne pose aucun problème.
Téléchargement du code : (fonctionne)
$.post("ajax/contents_ajax.php", {
'title': caption,
'text': frameText().getContent(),
'image_id': img
},
//Callback
Télécharger le code : (ne fonctionne pas avec les sauts de ligne)
$.get("ajax/contents_ajax.php", { 'get_item': id },
function (data){
//Never gets executed if data contains line breaks
}
,'json');
Tout le problème vient du fait que l'éditeur de texte riche TinyMCE semble insister pour insérer des sauts de ligne partout, même si j'ai activé l'option
remove_linebreaks : true
Je préfère avoir des sauts de ligne, mais pas s'ils cassent mon code. Quelqu'un peut-il me dire quel est le problème ici, et peut-être comment je peux coder les sauts de ligne sur le serveur avec PHP ?
Mise à jour
Alors que les suggestions de remplacement '\n'
avec ''
n'a pas fonctionné, il était proche de la bonne solution. Ce code a supprimé les caractères incriminés :
function parse($text){
$parsedText = str_replace(chr(10), "", $text);
return str_replace(chr(13), "", $parsedText);
}