作者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