2013-12-13 12 views
1

我遇到了Json數組問題。PHP Array進入Json並將數據恢復到網頁

JSON數據

{ 
    "res": ["000000000078", "00000001", "1367771147", "das ist mail text", 
      "000000000080", "00000001", "1367771147", "das ist mail text", 
      "000000000081", "00000001", "1367771147", "das ist mail text", 
      "000000000082", "00000001", "1367771147", "das ist mail text", 
      "000000000083", "00000001", "1367771147", "das ist mail text", 
      "000000000085", "00000001", "1367771147", "das ist mail text", 
      "000000000090", "00000001", "1367771147", "das ist mail text", 
      "000000000091", "00000001", "1367771147", "das ist mail text", 
      "000000000092", "00000001", "1367771147", "das ist mail text", 
      "000000000093", "00000001", "1367771147", "das ist mail text"], 
    "fvdfvv": "sdfsd" 
} 

調用這些東西在HTML網站

$(document).ready(function() { 
    $.ajax({ 
     type: "GET", 
     url: "mtable.php", 
     data: "", 
     dataType: 'json', 
     success: function (result) { 
      var id_mail = result.res[0]; 
      var id_user = result.res[1]; 
      var mail_datesent = result.res[2] 
      var mail_text = result.res[3] 

      $.each(result.res, function (i, data) { 
       console.log(data); 

       $('#example').append("<tr><td><b>id: </b>" + id_mail + "</td><td><b> leistung: </b>" + id_user + "</td><td><b> temp: </b>" + mail_datesent + "</td><td><b> Text: </b>" + mail_text + "</td></tr><br />"); 

      }); 
     } 
    }); 
}); 

我並沒有把所有的行中爲Html回聲。問題是他加載數組並將其放入表中。但他在第一線上循環。

例出

<p>id: 000000000078 leistung: 00000001 temp: 1367771147 Text: das ist mail text </p> 
<p>id: 000000000078 leistung: 00000001 temp: 1367771147 Text: das ist mail text </p> 
<p>id: 000000000078 leistung: 00000001 temp: 1367771147 Text: das ist mail text </p> 

我也想:

success: function(result) { 
      var allresult = result.res 
      $('#example').html( allresult ); 

      alert(allresult); 
      //$("#notice_div").hide(); 
     } 
    }); 
}) 

這裏JSON加載整個表,但我需要的行正確把它以數據表。我確信上面的代碼不能用於JQuery.datatables,對吧?

+0

這裏的問題究竟是什麼?預期的結果是什麼? – randak

+0

歡迎來到SO。請儘量用正確的語法寫出一些可讀性強的英語。 – EverythingRightPlace

+0

srry for my bad englisch – VBnoob

回答

2

其實,你應該改變你的JSON數據,以便每個電子郵件結果是分開的。但是,如果你堅持這個數據,那麼我想你應該這樣做:

for(var i=0,l = result.res.length;i<l ;i+=4){ 
    var id_mail = result.res[i]; 
    var id_user = result.res[i+1]; 
    var mail_datesent = result.res[i+2] 
    var mail_text = result.res[i+3] 
    $('#example').append("<tr><td><b>id: </b>"+id_mail+"</td><td><b> leistung: </b>"+id_user+"</td><td><b> temp: </b>"+mail_datesent+"</td><td><b> Text: </b>"+mail_text+ "</td></tr><br />"); 
} 
+0

這就是工作perefktly :)它不能是與json的工作更難,然後php?有沒有更好的辦法 ? :) – VBnoob

2

與其建造你資源的simple array,打造爲數組對象的,

,其中陣列中的每個對象是電子郵件收件人。

您目前正在執行您的代碼的方式,您似乎預先評估前4個索引項目中的值。

因此,對於每個項目,您會看到一個重複的序列,該序列將是數組的總長度。 這些行有點

{ 
    "res": [{ 
       "id" : "000000000078", 
       "leistung" : "00000001", 
       "temp" :"1367771147", 
       "text" : "das ist mail text" 
      }, { 
       "id" : "000000000079", 
       "leistung" : "00000001", 
       "temp" :"1367771147", 
       "text" : "das ist mail text" 
      },{ 
       "id" : "000000000080", 
       "leistung" : "00000001", 
       "temp" :"1367771147", 
       "text" : "das ist mail text" 
      }, 
      ], 
    "fvdfvv": "sdfsd" 
} 

這樣你的數據更有條理。

+0

+1我認爲這是正確的方式來處理這種數據。 – xpy

+0

是的,這是正確的:但是,當在php中創建更好的數組,在讀取它,所以我總是對象沒有定義或komplette長度錯誤在JQuery.js或否則[[{「data」:{「id_mail」:「000000000078」 ,「id_user」:「00000001」,「mail_datesent」:「1367771147」,「mail_betreff」:「郵件betreff 023401」,「mail_text」:「das ist郵件文本」,「mail_read」:「0」,「mail_sender」: 「robert」}}另一個 – VBnoob