I have an array in PHP called $jsonRankings. It's an indexed array, each element contains some utf8 encoded HTML.
I load this array into another array that has some other data in it:
$sumArray['rankings'] = $jsonRankings;
I have done a print_r of this array and verified it contains only the data I need, index starting at 0.
My PHP file's output is this:
echo json_encode($sumArray);
Here's my 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();
Basically this script runs once every second and updates a bunch of values on the page, including changing the content of a (table body) tag, inserting whatever rows need to be there.
This all works perfectly except my table body always has "undefined" as the first line. I really don't get why.