程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> PHP編程 >> 關於PHP編程 >> jQuery/Ajax/PHP/Json 的一個綜合例子

jQuery/Ajax/PHP/Json 的一個綜合例子

編輯:關於PHP編程

jQuery 是一個優秀的 Javascript 框架,對 js 進行了優秀的包裝,提供了許多方便的功能。jQuery 對 ajax 的包裝也堪稱優秀。 
 
    jQuery 可以以 json 文件傳輸協議來傳輸數據(類似 xml,而且大有取代 xml 的趨勢),而網站後台代碼必須與之配合使用。PHP 是用 json_encode 函數來對返回的數組數據進行編碼的,但這個函數只有 PHP5.2版本以上才支持。 
 
    從網上找到一個 json 的操作類,本人在 PHP4.4.7 版本下測試通過。本人還建了個函數 function my_json_encode($phparr),使代碼兼容 PHP5.2 以上版本。 
 
    示例代碼(包括 json 的類包軟件)可以在以下網址下載:http://www.BkJia.com/uploadfile/2012/0221/20120221090101730.rar
  
 
    以下是全部代碼: 
 
<html> 
<head> 
<title>jQuery Ajax 實例演示</title> 
</head> 
<script language="javascript" src="../lib/jquery.js"></script> 
<script language="javascript"> 
 
$(document).ready(function () 

   $('#send_ajax').click(function (){ 
     var params=$('input').serialize(); //序列化表單的值  
     $.ajax({ 
     url:'ajax_json.php', //後台處理程序
       type:'post',         //數據發送方式  
       dataType:'json',     //接受數據格式  
       data:params,         //要傳遞的數據  
       success:update_page //回傳函數(這裡是函數名)  
     }); 
   }); 
 
//$.post()方式:  
$('#test_post').click(function (){ 
    $.post( 
      'ajax_json.php', 
      { 
        username:$('#input1').val(), 
        age:$('#input2').val(), 
        sex:$('#input3').val(), 
        job:$('#input4').val() 
      }, 
      function (data) //回傳函數  
      { 
        var myjson=''; 
        eval('myjson=' + data + ';'); 
        $('#result').html("姓名:" + myjson.username + "<br/>工作:" + myjson['job']); 
      } 
    ); 
   }); 
 
//$.get()方式:  
$('#test_get').click(function () 

    $.get( 
      'ajax_json.php', 
      { 
        username:$("#input1").val(), 
        age:$("#input2").val(), 
        sex:$("#input3").val(), 
        job:$("#input4").val() 
      }, 
      function(data) //回傳函數  
      { 
        var myjson=''; 
        eval("myjson=" + data + ";"); 
        $("#result").html(myjson.job); 
      } 
    ); 
}); 
}); 
 
function update_page (json) //回傳函數實體,參數為XMLhttpRequest.responseText  

var str="姓名:"+json.username+"<br />"; 
str+="年齡:"+json.age+"<br />"; 
str+="性別:"+json.sex+"<br />"; 
str+="工作:"+json.job+"<br />"; 
str+="追加測試:"+json.append; 
$("#result").html(str); 

</script> 
<body> 
 
<div id="result" style="background:orange;border:1px solid red;width:300px;height:200px;"></div> 
<form id="formtest" action="" method="post"> 
    <p><span>輸入姓名:</span><input type="text" name="username" id="input1" /></p> 
    <p><span>輸入年齡:</span><input type="text" name="age" id="input2" /></p> 
    <p><span>輸入性別:</span><input type="text" name="sex" id="input3" /></p> 
    <p><span>輸入工作:</span><input type="text" name="job" id="input4" /></p> 
</form> 
<button id="send_ajax">提交</button> 
<button id="test_post">POST提交</button> 
<button id="test_get">GET提交</button> 
 
</body> 
</html> 
 
 
PHP 文件 ajax_json.php: 
 
<?php 
//$arr = $_POST; //若以$.get()方式發送數據,則要改成$_GET.或者干脆:$_REQUEST  
$arr = $_REQUEST; 
$arr['append'] = '測試字符串'; 
//print_r($arr);  
$myjson = my_json_encode($arr); 
echo $myjson; 
 
function my_json_encode($phparr) 

    if(function_exists("json_encode")) 
    { 
      return json_encode($phparr); 
    } 
    else 
    { 
      require_once 'json/json.class.php'; 
      $json = new Services_JSON; 
      return $json->encode($phparr); 
    } 

?> 

摘自 chaojie2009的專欄

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved