У меня есть страница PHP, которая возвращает объект JSON, подобный этому:
header('Content-Type:application/json');
echo <<<HERE_DOC
[ {content: '{row2[contentFull]}', bigimages: '{$row3['catalogFileID']}'}]
HERE_DOC;
На моей главной странице есть следующий код jQuery:
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;
}
})
})
})
Так что в основном на моей главной странице есть выпадающий список. Когда опция выбрана, она запускает Ajax-запрос обратно на сервер. Я получаю данные в формате JSON, а затем текстовое поле с идентификатором «content1» обновляется на основе этого объекта JSON.
Объект JSON выглядит следующим образом:
[
{
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'
}
]`
Но здесь возникают ошибки, и моя текстовая область не обновляется. Однако, если я жестко закодирую простой простой текст, который должен быть возвращен в объекте JSON, моя текстовая область обновляется.
Существует ли условие, при котором данные в объекте JSON не должны иметь тегов HTML?
Edit:
Как и предполагалось, я изменил свой код на следующий в PHP-коде:
$arr = array ('content'=>$rest1,'bigimages'=>$row3['catalogFileID']);
echo json_encode($arr);
Однако теперь в моем коде jQuery:
длина j не определена ...
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;
}
})