J'ai une page PHP qui retourne un objet JSON comme ceci:JSON déconner quand les données renvoyées a des balises HTML
header('Content-Type:application/json');
echo <<<HERE_DOC
[ {content: '{row2[contentFull]}', bigimages: '{$row3['catalogFileID']}'}]
HERE_DOC;
Dans ma page principale, j'ai le code jQuery suivant:
jQuery(function()
{
jQuery("select#rooms").change(function()
{
var options = '';
jQuery.getJSON("/admin/selection_about.php",{id:jQuery(this).val(),
ajax:isAjax}, function(j)
{
for (var i = 0; i < j.length; i++)
{
options = j[i].topImage;
document.getElementById('content1').value = j[i].bigimages;
}
})
})
})
Donc, fondamentalement, dans ma page principale, j'ai une liste déroulante. Lorsqu'une option est sélectionnée, elle renvoie une requête Ajax au serveur. Je reçois les données au format JSON, puis une zone de texte, avec l'ID 'content1', est mise à jour en fonction de cet objet JSON.
L'objet JSON ressemble à ceci:
[
{
content: '<SPAN STYLE= "" >"
this is some text"
blah blah, "
some more `text"
now some linebreaks;
<BR><BR>some more text and then another` linebreak.`<BR>`</SPAN>',
bigimages: 'cfil1069'
}
]`
Mais il y a des erreurs qui se produisent ici et mon textarea ne soit pas mis à jour. Cependant, si je code en dur le texte brut simple à renvoyer dans l'objet JSON, alors ma zone de texte est mise à jour.
Existe-t-il une condition pour laquelle les données de l'objet JSON ne doivent pas contenir de balises HTML?
Edit:
Comme suggéré, j'ai changé mon code à suivre dans le code PHP:
$arr = array ('content'=>$rest1,'bigimages'=>$row3['catalogFileID']);
echo json_encode($arr);
Mais maintenant, dans mon code jQuery:
longueur j est 'undefined' ..
jQuery.getJSON("/admin/selection_about.php",{id: jQuery(this).val(),
ajax: isAjax}, function(j)
{
alert('here3: ' + j.length); // this shows undefined
for (var i = 0; i < j.length; i++)
{
document.getElementById('content1').value = j[i].content;
}
})
directement liée à http://stackoverflow.com/questions/1414213/html -tags-in-data-return-from-json – VolkerK
aussi directement lié à http://stackoverflow.com/questions/1414205/cant-get-response-from-ajax-with-jquery –
@David Andres: Oui, mais 1414213 a été demandé par le même utilisateur (bien qu'aucune réponse n'ait encore été fournie). – VolkerK