2013-08-26 56 views
0

我試圖創建一個表來顯示來自MySQL數據庫的持久高分。儘管我有數據進入代碼(JSON格式),但我無法以一種合適的方式顯示數據。我試圖用高分數據向表格添加一個表格。行數取決於有多少數據,但列數始終爲2。附加一個數據表作爲變量

$.ajax({ 
    url : '../server.php', 
    type : 'GET', 
    success : function(response) { 
     var toAppend = '<table style="position: fixed; top:200px; left: 200px;" id="highscores">'; 
     var jsonObject = eval(response); 
     var highscores = ""; 
     for (i = 0; i < jsonObject.length && i < 10; i++) { 
      highscores += jsonObject[i].Name + " " + jsonObject[i].Score + "\n"; 
      toAppend += "<tr>"; 
      toAppend += jsonObject[i].Name; 
      toAppend += "</tr><tr>"; 
      toAppend += jsonObject[i].Score; 
      toAppend += "</tr>"; 
     } 
     toAppend += "</table>"; 
     $('body').append(toAppend); 
     alert(highscores); 
    }, 

    error : function() { 
     alert("fail"); 
    } 
}); 

這是我的代碼從服務器接收json數據並將其轉換爲JSON。我在調試代碼中發出警報,但這不是我想要顯示數據的方式。我想爲每個分數在表格上新增一行,每行都有兩列。一個用於名稱和一個用於評分。

+0

'eval'是*邪惡*,使用'JSON.parse(JSON)|| $ .parseJSON(json);'而是。 –

回答

2

您爲每個值附加行,而不是爲每個對象添加一行,然後在其中添加單元格。

更多的東西是這樣的:

var toAppend = $('<table style="position: fixed; top:200px; left: 200px;" id="highscores"></table>'); 
var jsonObject = eval(response); 

for (i = 0; i < jsonObject.length && i < 10; i++) { 
    var newRow = $('<tr></tr>'); 
    $('<td></td>').text(jsonObject[i].Name).appendTo(newRow); 
    $('<td></td>').text(jsonObject[i].Score).appendTo(newRow); 
    newRow.appendTo(toAppend); 
} 

$('body').append(toAppend); 
+0

完美,有效,謝謝。 –

相關問題