2013-08-22 28 views
0

我想解析出一個表,垂直客戶和水平時間戳。我到目前爲止這樣做,但重複每個循環從以前的客戶的時間戳。這裏是我的代碼:邏輯問題與吐出數據,變量重複

json = JSON.parse(xmlHTTP.responseText); 
    message = "<table><tr id='head_table'><td>Name:</td><td>Rnd 1:</td><td>Rnd 2:</td><td>Rnd 3:</td><td>Rnd 4:</td><td>Rnd 5:</td><td>Rnd 6:</td><td>Options:</td></tr>"; 
    for(var i=0; i<json.collection.length; i++) 
    { 
     message = message + "<tr><td>" + json.collection[i].customer.name + "</td>"; 

     for(var j=0; j<json.collection[i].events.length; j++) 
     { 
      eventmsg = eventmsg + "<td>" + json.collection[i].events[j].time_stamp + "</td>"; 
     } 
     message = message + eventmsg + "</tr>"; 
    } 
    message = message + "</table>"; 

的JSON看起來是這樣的:

- collection: [ 
    - { 
     - customer: { 
      id: "1", 
      name: "Mr Jones", 
      customer_id: "1" 
     } 
     -events: [ 
     -{ 
      event_id: "1", 
      time_stamp: "1377083342" 
      } 
     -{ 
      event_id: "2", 
      time_stamp: "1377083342" 
      } 
+0

請張貼您的JSON,至少有幾行的價值。 – andi

回答

0

我在這裏看到的任何錯誤試試這個..如果它不工作,過去JSON的一部分。

var json = JSON.parse(xmlHTTP.responseText), 
message = "<table><tr id='head_table'><td>Name:</td><td>Rnd 1:</td><td>Rnd 2:</td><td>Rnd 3:</td><td>Rnd 4:</td><td>Rnd 5:</td><td>Rnd 6:</td><td>Options:</td></tr>"; 

for(var i=0; i<json.collection.length; i++){ 
message+="<tr><td>" + json.collection[i].customer.name + "</td>"; 
for(var j=0; j<json.collection[i].events.length; j++){ 
    message+="<td>" + json.collection[i].events[j].time_stamp + "</td>"; 
} 
message+="</tr>"; 
} 
message+="</table>"; 

你不需要寫msg=msg+evntmsg它的混亂,並導致 你也並不需要另一個變種事件一個就夠了,你只是追加

所以msg+=newstring

想到的錯誤您只需追加一個字符串即可。

提示:緩存你的json。

var collection = JSON.parse(xmlHTTP.responseText).collection 

for(var i=0 , co ; co = collection[i] ; ++i){ 
message+="<tr><td>" + co.customer.name + "</td>"; 
for(var j=0 , ev ; ev = co.events[j] ; ++j){ 
    message+="<td>" + ev.time_stamp + "</td>"; 
} 
message+="</tr>"; 
} 
message+="</table>";