我在PHP中有一個名爲$ jsonRankings的數組。它是一個索引數組,每個元素包含一些utf8編碼的HTML。爲什麼這個'undefined'
我這個數組加載到另一個陣列,在它有一些其他數據:
$sumArray['rankings'] = $jsonRankings;
我已經做了這個數組的print_r的並驗證它僅包含我所需要的數據,指數從0開始。
我的PHP文件的輸出是這樣的:
echo json_encode($sumArray);
這裏是我的javascript:
function getScores(){
var xmlhttp;
var jsonText;
var rowData;
var rowText;
if (window.XMLHttpRequest) { // code for IE7+, Firefox, Chrome, Opera, Safari
xmlhttp = new XMLHttpRequest();
}
else { // code for IE6, IE5
xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.onreadystatechange = function()
{
if (xmlhttp.readyState == 4 && xmlhttp.status == 200)
{
jsonText = xmlhttp.responseText;
var parsedJSON = $.parseJSON(jsonText);
rowData = parsedJSON.rankings;
for(var index in rowData)
{
rowText += rowData[index];
}
document.getElementById('rows').innerHTML = rowText;
document.getElementById('sessionName').innerHTML = parsedJSON.sessionName;
document.getElementById('elapsedTime').innerHTML = "Elapsed Time: " + parsedJSON.elapsedTime;
document.getElementById('remainingTime').innerHTML = "Remaining Time: " + parsedJSON.remainingTime;
document.getElementById('lapsCompleted').innerHTML = "Laps Completed: " + parsedJSON.lapsCompleted;
document.getElementById('flag').innerHTML = "Flag: " + parsedJSON.flag;
document.getElementById('tickerMessage').innerHTML = parsedJSON.tickerMessage;
}
}
xmlhttp.open("GET", "scoreboard.php?json=1", true);
xmlhttp.send();
setTimeout(getScores, 1000);
}
getScores();
基本上這個腳本每秒運行一次,並更新頁面上的一堆值,包括更改(表體)標記的內容,插入需要在那裏的任何行。
這一切都完美,除了我的表體總是有「undefined」作爲第一行。我真的不明白爲什麼。
你不應該濫用'innerHTML'這樣。使用'textContent'代替 –
JSON *實際*看起來像什麼?您應該能夠從瀏覽器的網絡調試控制檯中檢查它。 – Pointy
你如何使用'$ .parseJSON'?你在頁面上有'jQuery'嗎?如果是這樣,爲什麼你不使用jQuery來發出AJAX請求? –