我在console.log裡可以看到json,但是用javascript印出來的表格卻全部都是undefined....
json.php(輸出json)
<?php
include "lora_config.php"; //引入公用程式 , MySql 及 ip
$result = mysqli_query($con, "SELECT * FROM `lora_log` WHERE 1 ORDER BY id DESC ");
if ($result) {
// Conversion of result object into JSON format
$rows = array();
while($temp = mysqli_fetch_assoc($result)) {
echo json_encode($temp);
}
} else {
echo "No Results Found";
}
// 關閉資料庫
mysqli_close($con);
?>
html
<div class="container">
<table id="Table" border="1" >
<thead>
<tr>
<th>ID</th>
<th>gp</th>
<th>sn</th>
</tr>
</thead>
<tbody></tbody>
</table>
</div>
javascript
<script>
$(document).ready(function() {
$.ajax({
url: 'lora_json.php',
method: 'GET',
success: function(response){
var len = response.length;
for(var i=0; i<len; i++){
var id = response[i].id;
var gp = response[i].gp;
var sn = response[i].sn;
var tr_str = "<tr>" +
"<td>" + id + "</td>" +
"<td>" + gp + "</td>" +
"<td>" + sn + "</td>" +
"</tr>";
$("#Table tbody").append(tr_str);
}
}
});
});
</script>
你犯了數個錯誤。可能需要一起進行才可以。
我就一一的說明
ajax的取值方式不對:
ajax如果未宣告dataType的情況下。會用檔案mime格式來決定回傳資料。一般來說你請的是網址。所以回傳的大多是html或是text這兩種格式。反正不會是jsonp格式。
當然了,就算不宣告json格式其實也沒關係。可以在接受字串後,再從javascript內轉換成json也是可以的。
但最好是宣告一下要接收的資料格式。因為我看你就直接用物件用法了。也沒做任何轉換json的動作
ajax能接受的是一個json。不是數個json
在你的程式內這樣子使用的話
while($temp = mysqli_fetch_assoc($result)) {
echo json_encode($temp);
}
只會產生數個json組。但ajax能應用接收的只有一組。
正確的用法是你可以先用一個陣列(array)組合後。再最後才去做 json_encode 輸出。
感謝ㄉㄉ
我現在還有一個問題,我需要讓這個表格每幾秒不重整網頁自動更新一次。
上網估狗了一下,我是這樣去寫的,但是它還是不會動....
$(document).ready(function() {
$.ajax({
url: 'lora_json.php',
method: 'GET',
dataType:'json',
success: function(response){
var len = response.length;
for(var i=0; i<len; i++){
var id = response[i].id;
var gp = response[i].gp;
var sn = response[i].sn;
var data_01 = response[i].data_01;
var tr_str = "<tr>" +
"<td>" + id + "</td>" +
"<td>" + gp + "</td>" +
"<td>" + sn + "</td>" +
"<td>" + data_01 + "</td>" +
"</tr>";
setInterval($("#Table tbody").append(tr_str),1000);
}
}
});
});
個人是想用setInterval()去處理,不知道這個方向對不對?
第一次回復 如果有錯誤 請鞭小力點 就我所知 ajax如果沒有給dataType:json 返回的格式應該只是單純的text 不是你所想的json格式~~如果有誤 請各位多多指教