2015-06-26 38 views
0

我有一個JavaScript和HTML代碼:使用jQuery建立表格行從Ajax響應(不與靜態JSON數據)

<script type="text/javascript" src="jquery-1.11.3.js"> </script> 

<script type="text/javascript"> 

$(document).ready(function() 
{ 
    $.ajax({ 
    url: "getjson.php", 
    type: "POST", 

    success: function (response) 
    { 
     console.log(response); 
     var trHTML = ''; 

     $.each(response, function (i, item) 
     { 
      trHTML += 
      '<tr><td>' + item.id + 
      '</td><td>' + item.konu + 
      '</td><td>' + item.aciklama + 
      '</td><td>' + item.giris_tarih + 
      '</td><td>' + item.degistirilme_tarih + 
      '</td><td>' + item.ad_soyad + 
      '</td><td>' + item.email + 
      '</td></tr>';    
     }); 
     $('#records_table').append(trHTML); 
    } 
}); 
}); 
</script> 


<table id="records_table" border='1'> 
    <tr> 
     <th align="center" width="50">Id</th> 
     <th align="center" width="100">Konu</th> 
     <th align="center" width="100">Aciklama</th> 
     <th align="center" width="100">Giris Tarih</th> 
     <th align="center" width="150">Degistirilme Tarih</th> 
     <th align="center" width="100">Ad Soyad</th> 
     <th align="center" width="100">Email</th> 
    </tr> 
</table> 

此代碼不能正常工作。它只創建第一行,但不會從getjson.php獲得json響應。 當我使用jsfiddle中的靜態json數據,像這樣https://jsfiddle.net/tqyn3/761/,它就像我想的那樣工作。但我想從getjson.php獲取數據。 如何將其轉換爲動態?

更新: 在調試器控制檯它寫在上面:

showjson.php:12 

{"kullanicilar":[{"id":"6","konu":"blood angels","aciklama":"primarch","giris_tarih":"0000-00-00","degistirilme_tarih":"0000-00-00","ad_soyad":"singuinius","email":"warhammer"},{"id":"7","konu":"emperors children","aciklama":"daemon primarch","giris_tarih":"0000-00-00","degistirilme_tarih":"0000-00-00","ad_soyad":"fulgrim","email":"warhammer"},{"id":"8","konu":"night lords","aciklama":"primarch","giris_tarih":"0000-00-00","degistirilme_tarih":"0000-00-00","ad_soyad":"konrad curze","email":"warhammer"},{"id":"9","konu":"grey knights","aciklama":"grand master","giris_tarih":"0000-00-00","degistirilme_tarih":"0000-00-00","ad_soyad":"grand master","email":"warhammer40k"},{"id":"10","konu":"dark angels","aciklama":"primarch","giris_tarih":"0000-00-00","degistirilme_tarih":"0000-00-00","ad_soyad":"lion el jonson","email":"warhammer40k"}]} 

,並在下面寫有紅色文字:

jquery-1.11.3.js:577 Uncaught TypeError: Cannot use 'in' operator to search for 'length' in 

{"kullanicilar":[{"id":"6","konu":"blood angels","aciklama":"primarch","giris_tarih":"0000-00-00","degistirilme_tarih":"0000-00-00","ad_soyad":"singuinius","email":"warhammer"},{"id":"7","konu":"emperors children","aciklama":"daemon primarch","giris_tarih":"0000-00-00","degistirilme_tarih":"0000-00-00","ad_soyad":"fulgrim","email":"warhammer"},{"id":"8","konu":"night lords","aciklama":"primarch","giris_tarih":"0000-00-00","degistirilme_tarih":"0000-00-00","ad_soyad":"konrad curze","email":"warhammer"},{"id":"9","konu":"grey knights","aciklama":"grand master","giris_tarih":"0000-00-00","degistirilme_tarih":"0000-00-00","ad_soyad":"grand master","email":"warhammer40k"},{"id":"10","konu":"dark angels","aciklama":"primarch","giris_tarih":"0000-00-00","degistirilme_tarih":"0000-00-00","ad_soyad":"lion el jonson","email":"warhammer40k"}]} 
+0

檢查什麼是服務器(執行console.log(響應)) – Daimos

+0

返回什麼是'getjson.php'?也許'getjson'不返回JSON有效 – ashkufaraz

+0

getjson.php是從獲取數據的另一個文件mysql並將其解析爲json。當我只調用getjsonphp時,它返回的數據沒有任何問題。在我的jsfiddle鏈接中,它從getjson.php返回的數據 – gunes

回答

3

,我發現自己的答案在最後: 固定碼是:

$(document).ready(function() 
{ 
    $.ajax({ 
     url: "getjson.php", 
     type: "POST",  
     dataType:"json", 
     success: function (response) 
     { 
      var trHTML = ''; 
      $.each(response, function (key,value) { 
      trHTML += 
       '<tr><td>' + value.id + 
       '</td><td>' + value.konu + 
       '</td><td>' + value.aciklama + 
       '</td><td>' + value.giris_tarih + 
       '</td><td>' + value.degistirilme_tarih + 
       '</td><td>' + value.ad_soyad + 
       '</td><td>' + value.email + 
       '</td></tr>';  
      }); 

      $('#records_table').append(trHTML); 
     } 
    }); 
}); 

我應該添加'dataType:「json」,' 而html是:

<table id="records_table" border='1'> 
    <tr> 
     <th align="center" width="50">Id</th> 
     <th align="center" width="100">Konu</th> 
     <th align="center" width="100">Aciklama</th> 
     <th align="center" width="100">Giris Tarih</th> 
     <th align="center" width="150">Degistirilme Tarih</th> 
     <th align="center" width="100">Ad Soyad</th> 
     <th align="center" width="100">Email</th> 
    </tr> 
</table> 
1

確保頭被設置成JSON在PHP 。驗證響應變量是否具有您期望的結構。這可能是一個在php中創建結構的問題。有時候json_encode做的和你期望的不一樣。

到控制檯日誌中repsonse把它放在這裏:

success: function(response) { 
    console.log(response); 
    // the rest of your code 
} 

嘗試:

success: function (response) 
{ 
    console.log(response); 
    var trHTML = ''; 
    var data = response.kullanicilar; 
    for(var i = 0; i < data.length; i++) 
    { 
     trHTML += 
     '<tr><td>' + data[i].id + 
     '</td><td>' + data[i].konu + 
     '</td><td>' + data[i].aciklama + 
     '</td><td>' + data[i].giris_tarih + 
     '</td><td>' + data[i].degistirilme_tarih + 
     '</td><td>' + data[i].ad_soyad + 
     '</td><td>' + data[i].email + 
     '</td></tr>';    
    }; 
    $('#records_table').append(trHTML); 
} 
+0

json結構是我想要的。如果我從瀏覽器調用getjson.php,getjson.php會正常工作。我只是不能用動態json數據創建表。 – gunes

+0

當您從getjson.php和static調用console.log(響應)時會發生什麼情況。那裏有區別嗎? –

+0

我應該寫哪一行?我嘗試了一些線條,但沒有一個返回任何東西。 – gunes