我有一個是返回一個JSON對象這樣的PHP頁面:JSON搞亂數據返回時有HTML標籤
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格式獲取數據,然後基於該JSON對象更新ID爲'content1'的textarea。
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'
}
]`
但也有在這裏發生的錯誤和我的textarea沒有更新。但是,如果我硬編碼簡單的文本在JSON對象中返回,那麼我的textarea被更新。
是否存在JSON對象中的數據不應具有HTML標記的條件?
編輯:
至於建議,我改變了我的代碼在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;
}
})
直接關係到http://stackoverflow.com/questions/1414213/html -tags-in-data-returned-from-json – VolkerK 2009-09-13 02:19:59
也直接關係到http://stackoverflow.com/questions/1414205/cant-get-response-from-ajax-with-jquery – 2009-09-13 02:22:32
@David Andres:是的,但是, 1414213已被同一用戶詢問(雖然尚未提供答案)。 – VolkerK 2009-09-13 02:24:23