作者yenpaul (Paul)
看板Web_Design
標題[問題] 用ajax讀取PHP裡的資料出現問題
時間Thu Jul 21 04:10:55 2016
我是照教學網頁一步一步的做
https://openenergymonitor.org/emon/node/107
可是做到後面我的網頁卻跑不出資料
我嘗試將success改成complete
可以觸發alert, 但是跑出來的資料怪怪的
以下是我的代碼
$(document).ready(function(){
$.ajax({
type:"GET",
url:"api.php",
dataType:"json",
complete:function(data)
{
alert("complete");
var id = data[0];
$("#test").html(id);
}
});
});
在api.php上跑的array echo出來沒有問題
echo json_encode($array);
另外如果我將id改成data.toString()
html會跑出[object Object]
目前判斷ajax應該是有完成與api.php之間的交換
但是不知道為什麼data跑出來是錯的 無法顯示
希望有人可以幫個忙
謝謝大家
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 142.129.18.133
※ 文章網址: https://webptt.com/m.aspx?n=bbs/Web_Design/M.1469045457.A.087.html
1F:推 pptsodog: 會不會是沒有parse? 07/21 08:24
2F:推 Qiqi: JSON.parse(id) 07/21 08:58
感謝幫忙,不過加上了JSON.parse(data)進去可是還是顯示不出來耶
另外補充一下,在執行JSON.parse前data為[object object]
可是加入JSON.parse後就完全顯示不出來
※ 編輯: yenpaul (142.129.18.133), 07/21/2016 10:32:49
3F:→ Kenqr: 因為有error 所以success沒反應 07/21 11:07
4F:推 secondDim: 建議用console.log(data);看一下回傳的資料格式 07/21 11:07
5F:→ Kenqr: 改用error函數 看看是什麼錯誤 07/21 11:07
謝謝大家幫忙,我已經將PHP中的data跑出來了
我用的方法是data.responseText 再 JSON.parse(data)
就可以將PHP讀出的陣列傳回網頁了
謝謝各位
※ 編輯: yenpaul (142.129.18.133), 07/21/2016 12:24:55
6F:推 et69523820: 給你一個建議 基本上開發ajax會比較不好錯 因為沒有 07/22 07:41
7F:→ et69523820: 顯示畫面 不知道哪個環節有問題 你可以安裝Fiddler這 07/22 07:41
8F:→ et69523820: 套外軟體 可以監聽http所有的運作 方便除錯 07/22 07:42
9F:→ ssccg: 有設dataType的話,callback傳入的已經是物件,不需要再 07/22 12:14
10F:→ ssccg: JSON.parse 07/22 12:14
11F:→ ssccg: ↑在用success的時候 07/22 12:16
12F:→ ssccg: 如果是用complete的話,根本沒有data,第一個參數是jqXHR 07/22 12:17
14F:→ xdraculax: 這種事應該在 success 作,不應該改 complete 07/22 12:23
我一開始是用success 可是因為一直跑不出來才換成complete
我還在研究為什麼我的success一直跑不出來 .....
※ 編輯: yenpaul (142.129.18.133), 07/23/2016 03:46:12
15F:→ kattte: success 跟 complete 要查一下jQuery API Doc 阿.... 07/28 00:07
16F:→ kattte: 免得出包都不知道死在哪 07/28 00:07