jquery ajax返回json資料進行前後台互動執行個體

來源:互聯網
上載者:User

先我們看示範代碼

 代碼如下 複製代碼

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Ajax json test</title>

<script language="javascript" src="./jquery-1.7.1.min.js" /></script>
<script language="javascript" src="./ajax_json.js" /></script>

</head>

<body style="font-family:Arial;line-height:150%">
 
<a href="javascript:getAllUsers();">擷取所有使用者資訊</a> &nbsp;&nbsp;
 
<!-- 用於顯示返回結果 -->
 <div id="users"></div>
 
</body>
</html>

當我們點擊 擷取所有使用者資訊在div的id=users中顯示


Ajax返回的JSON字串:
[{"userId":1,"userName":"Raysmond"},{"userId":2,"userName":"u96f7u5efau5764"},{"userId":3,"userName":"Rita"}]

解析出來的結果為:
userId = 1
userName = Raysmond
userId = 2
userName = 雷建坤
userId = 3
userName = Rita

上面代碼大家可能看不懂,我們現在來詳細介紹

代碼部分

 代碼如下 複製代碼

index.html

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Ajax json test</title>

<script language="javascript" src="./jquery-1.7.1.min.js" /></script>
<script language="javascript" src="./ajax_json.js" /></script>

</head>

<body style="font-family:Arial;line-height:150%">
 <h1>Ajax利用JSON進行前後台互動</h1>
 <a href="javascript:getAllUsers();">擷取所有使用者資訊</a> <br/>
 
 <!-- 用於顯示返回結果 -->
 <div id="users"></div>
</body>
</html>ajax_json.js

/**
 * jQuery 同步Ajax封裝
 */
function getJson(RequestData,URL){
 var reJson;
 $.ajax({
  type:'POST',
  url:URL,
  data:RequestData,
  async:false, //為了簡便,設定為同步操作
  cache: false,
  success:function(responseData){
   reJson=responseData;
  }
 });
 return reJson; 
}

/**
 * 擷取所有使用者資訊
 */
function getAllUsers(){
 var url = "./service.php";
 var request = 'action=get_all_users';
 //從後台擷取並解析,由於上面封裝ajax採用的是同步返回,
 //所以這樣操作能成功擷取返回資料
 var json = getJson(request,url);
 var users =  eval('('+ json +')');
 
 var usersHtml = '<br/><span style="color:red;">Ajax返回的JSON字串:</span><br/>'
    + json + '<br/><br/><span style="color:red;">解析出來的結果為:</span><br/>';
 for(var i=0;i<users.length;++i){
  usersHtml += 'userId = ' + users[i].userId + '<br/>'
       + 'userName = ' + users[i].userName + '<br/>';
  }
 //把構造的HTML利用jQuery動態顯示到頁面
 $('#users').empty().html(usersHtml);
 }
service.php

<?php
 //接受請求參數並根據參數選擇操作
 if(isset($_POST['action'])&&$_POST['action']!=""){
   switch($_POST['action']){
    case 'get_all_users': getAllUsers(); break;
    default:
    }
 }

 //處理請求:以JSON格式返回所有使用者資訊
 function getAllUsers(){
  $users = array(
   array("userId"=>1,"userName"=>"Raysmond"),
   array("userId"=>2,"userName"=>"雷建坤"),
   array("userId"=>3,"userName"=>"Rita")
   );
  echo json_encode($users);
 }
?>

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.