jQuery/Ajax/PHP/Json 的一個綜合例子
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 以上版本。
以下是全部代碼:
<html>
<head>
<title>jQuery Ajax 執行個體示範</title>
</head>
<script language=”javascript” src=”../lib/jquery.js” mce_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(
username:$(”#input1″).val(),
age:$(”#input2″).val(),
sex:$(”#input3″).val(),
job:$(”#input4″).val()
function(data) //回傳函數
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);
}
?>
本文轉自網眼51CTO部落格,原文連結:http://blog.51cto.com/itwatch/286471,如需轉載請自行聯系原作者