標籤:
上一篇文章我們獲得後台資料庫的資料後轉換成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格式的資料。
使用Javascript Ajax 通訊操作JSON資料 [下]