作者sweetjp6 (水餃)
看板Ajax
標題[問題] jquery 如何取回資料庫內的資料
時間Thu Mar 1 18:17:16 2012
目前有兩個問題, 想請教版上各位先進
第一個問題:
我使用getJSON的方法,將id送到php處理
根據id,資料庫取得相對應的資料,資料如下
drama[i]['brand'], drama[i]['action'],drama[i]['seq']
以上三筆都是陣列
i = 0 ~ N ,
問題:不知道怎麼樣能夠一次傳回這三個陣列 ?
第二個問題
在div中,有兩種元素
<img class='DramaPic' id='GO' style='display: none'>
<img class='DramaPic'id='GO'>
問題:請問如何只取得<img class='DramaPic'id='GO'> ?
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.117.164.148
1F:推 nenpow:1. 用json_encode包json回來 2. $("img:visible")? 03/01 18:25
1. 如果單純用json包,像這樣:json_encode($drama)
結果會顯示(object,object)
2.這個方法可以囉,感謝。但如果我有兩個以上的元素要逐一用alert顯示
請問該如何處理?
※ 編輯: sweetjp6 來自: 140.117.164.148 (03/01 18:40)
2F:→ nenpow:1.看無 該不會直接alert 回傳的data吧..2. .each 03/01 19:07
3F:→ tyf99:php echo json_encode($var) 03/01 19:10
4F:→ tyf99:jQ callback function(data){var reply=$.parseJSON(data);} 03/01 19:12
5F:→ tyf99:php 所有資料包成一個物件,js 收到解開就是同樣的物件 03/01 19:13
6F:→ tyf99:2. id 不要重複 03/01 19:14
1. 我在php的處理方式是這樣
//從資料庫取出資料
for($i=0; $i< $num_cont ; i++ )
$drama[] = mysql_fetch_array($query_content);
echo json_encode($drama);
在jquery:
//接收
callback:
function(Drama){
for (var i=0; i<Drama.length ;i++){
$('body').append(Drama[i]['action']","Drama[i]['brand']","
Drama['seq']);
}
}
但這時候收到的Drama內容顯示出來是 [object,Object]
2.感謝y大,但我的id 一定是要一樣的
也謝謝n大的提示
※ 編輯: sweetjp6 來自: 140.117.164.148 (03/01 20:07)
7F:→ Crow22312:[object Object] 就是 Object 原本的 toString() 所產生 03/01 21:01
8F:→ Crow22312:的字串; 結果不如預期就改用 console.log 看看是什麼吧 03/01 21:02
9F:→ Crow22312:google chrome 之類的 console.log 可以看到完整的 03/01 21:03
10F:→ Crow22312:object 葫蘆裡到底裝了什麼藥.. 03/01 21:03
11F:→ Crow22312:至於 id 一定要一樣.. 還真頭一次聽人這樣子說.. 03/01 21:04
12F:→ Crow22312:直覺上再奇怪的需求也能避開 id 重複的問題 03/01 21:05
感謝C大指點,但是否能說明一下console.log如何使用,我是用chrome,謝謝。
id一樣是因為我的元素是用drag&drop 拖拉的
style='display: none'只是因為圖片被丟回原本的地方,而刪除圖片的話會造成我
後續的問題,所以才會選擇隱藏。這麼看來,id是一定不會變的吧。
※ 編輯: sweetjp6 來自: 140.117.164.148 (03/01 21:18)
13F:→ tyf99:$all_data=array(); 03/01 21:38
14F:→ tyf99:while($row=mysql_fetch_assoc($query_result)) 03/01 21:38
15F:→ tyf99: array_push($all_data, $row); 03/01 21:38
16F:→ tyf99:echo json_encode($all_data); 03/01 21:38
17F:→ tyf99:這樣子 $all_data 就是完整的二元陣列 03/01 21:39
18F:→ tyf99:client callback: function(data) 03/01 21:40
19F:→ tyf99:{ var reply=$.parseJSON(data); 03/01 21:40
20F:→ tyf99: for(var i in reply) 03/01 21:41
21F:→ tyf99: { for(var j in reply[i]) 03/01 21:42
22F:→ tyf99: { do something with reply[i][j]... } 03/01 21:43
23F:→ tyf99:}} 03/01 21:43
請問y大, $row是什麼意思?
謝謝各位幫忙,第二個問題已經解決囉。
※ 編輯: sweetjp6 來自: 140.117.164.148 (03/01 21:44)
24F:→ tyf99:$row = 暫存變數 03/01 21:45
25F:→ tyf99:資料庫取陣列用 mysql_fetch_assoc 較省記憶體 03/01 21:47
26F:→ tyf99:js 的 reply 完全等於 $all_data 03/01 21:48
27F:→ tyf99:id 重複的話,js 使用任何以 id 取 dom,只會抓到第一個 03/01 21:52
28F:→ tyf99:html 規範中 id 只能是 unique 03/01 21:54
29F:→ tyf99:你可以在 id 後面 concat 自定字元來區分 03/01 21:55
30F:→ tyf99:例如 id="XX_001", id="XX_002"... 然後自己再抓"XX"出來 03/01 21:56
31F:→ tyf99:就是不要讓 id 重複 03/01 21:57
32F:→ Crow22312:chrome 的話 F12 跳出開發人員工具, 隨便點一下按然後 03/02 09:20
33F:→ Crow22312:按個 esc 就會跳出 javascript console 裡面就會有 log 03/02 09:20
34F:→ Crow22312:點一點就可以展開看你 log 的物件長什麼樣子 03/02 09:21