使用Javascript Ajax 通信操作JSON数据 [下]

上一篇文章我们获得后台数据库的数据后转换成json格式然后返回到前台,但只是返回的一位数组,这次我们返回二维和三维数组和对象。

前台代码shizhan.html:

 1 <!DOCTYPE html>
 2 <html>
 3 <head>
 4     <title>json数据获取</title>
 5     <meta charset="utf-8">
 6     <script src='jquery.js'></script>
 7     <script type="text/javascript">
 8     $("document").ready(function() {
 9         var url="shizhan.php";
10         var data={"do":"first"};
11         
12         $.getJSON(url,data,function(res){
13             $("#username").val(res.username);
14             $("#password").val(res.password);
15         });
16 
17         var data={"do":"second"};
18         $.getJSON(url,data,function(res) {
19             $("#members").val(res.third.members.username);
20         });
21 
22         var data={"do":"third"};
23         $.getJSON(url,data,function(res){
24             $("#address").val(res.address[1].username);
25         });
26         
27     });
28     </script>
29 </head>
30 <body>
31     <h2>一位数组json数据显示</h2>
32     <input type="text" name="username" id="username" /><br/>
33     <input type="password" name="password" id="password">
34 
35     <h2>二位数组json数据显示</h2>
36     <textarea id="members"></textarea>
37 
38     <h2>三位数组json数据显示</h2>
39     <textarea id="address"></textarea>
40 </body>
41 </html>

这里我们用$.getJSON(url,data,callback)来获得我们从url处返回的json格式的数据,注意,$.getJSON()中的JSON必须大写。

并且这时我们传递给后台的参数不把它放在url的末尾,而是直接放在新定义的data变量中。所以后台程序获取参数时不再使用$_GET[]了,而是使用$_REQUEST[].

还有一点值得提醒的是,在将返回得到的json格式的数据时,如果后台的二位数组中的第一位是['1'],则我们在前台赋给变量中的数据的格式应为上述代码中的

 $("#address").val(res.address[1].username); ,而不是 $("#address").val(res.address.1.username); ,而如果后台的二维或者是三维数组的第一位是['third']等英文时,则可用上述代码中的 $("#members").val(res.third.members.username); .

  后台代码:

 1 <?php
 2 
 3 $do=$_REQUEST['do'];
 4 
 5 $member['username']='慕课网';
 6 $member['password']='mukewang';
 7 
 8 $members['1']['username']='张三';
 9 $members['1']['password']='zhangsan';
10 $members['2']['username']='李四';
11 $members['2']['password']='lisi';
12 $members['2']['address']='朝阳区';
13 
14 $members['third']['members']['username']='我是第三个用户名';
15 
16 class addressClass{
17     public $address = array();
18 
19     public function setAddress($array) {
20         $this->address=$array;
21     } 
22 
23     public function getAddrss() {
24         return $this->address;
25     }
26 }
27 
28 $addressObj = new addressClass();
29 
30 $addressObj->setAddress($members);
31 
32 switch($do) {
33     case 'first' : echo json_encode($member);break;
34 
35     case 'second': echo json_encode($members);break;
36 
37     case 'third' : echo json_encode($addressObj);break;
38 }

    后台代码中我们使用json_encode()函数来将一位数组,二维数组,三位数组和对象转换为json格式的数据。

posted @ 2015-07-28 22:42  todaytoday  阅读(199)  评论(0编辑  收藏  举报