登录  
 加关注
查看详情
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

pcwanli的博客

nx

 
 
 

日志

 
 

jQuery、Ajax、PHP、Json的一个综合例子  

2010-12-01 18:53:51|  分类: jQuery |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

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://download.csdn.net/source/810895

以下是全部代码:

<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);
}
}
?>

  评论这张
 
阅读(907)| 评论(0)

历史上的今天

在LOFTER的更多文章

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2018