[原创+源码]绝对强悍:jQuery实现可编辑表格的用户管理系统(一)

     [原创+源码]jQuery+Ajax+Json+Php技术实现可编辑表格的用户管理系统 ,源码下载见帖子底部

     今天给大家带来的是基于jQuery的ajax+json对象解析+Php开发技术实现的强悍的可编辑表格的用户管理系统,由于时间的关系还没有实现分页功能,下一步我将再加上google分页功能,如果对于google分页不太熟悉的同学,
请参考我的另外一篇文章:[原创]终极分页:Ajax+Js+Dom+Json无刷新分页技术     本次案例主要的特色集中在以下几个方面
     1)通过jQuery实现一个数据表格的可编辑,当确认编辑后能够自动的更新到数据库中
     2)通过jQuery实现表格的隔行变色效果,同时当鼠标悬停在某一行上会高亮显示该行的内容
     3)通过jQuery实现一个跟随鼠标移动的层,当鼠标移到不同的单元格,显示单元格的内容
     4)可编辑表格增加了快捷键操作,回车则直接修改内容,esc返回修改
     5)整个案例使用的均是jQuery中ajax的post方法进行异步数据交互
     6)通过jQuery,在ajax请求时使用了jQuery特有的“参数序列化”的方法实现了参数的封装
     7)最后获取服务器端数据则是采用json格式,解析服务器端返回的json字符串

     本次案例还需要更新解决的问题:
     1)完善分页功能,现在只是通过ajax读取出数据库中的所有的数据
     2)完善删除操作,可以删除选中的信息
     3)当然因为本人是用写这个程序到凌晨3点,太困了没有仔细调整bug,还请朋友们理解,如有问题可QQ:825065980
     
     讲完上述前提后,我们开始学习这个案例,先看下效果:
   
     初始化页面,显示说有的数据,输入信息点击按钮可以添加到数据库,同时显示出来
     
     每个单元格的内容可以实时编辑,如图见光标处
     
     弹出确认框,确认是否修改信息到数据库中,回车键确认,Esc键返回
     
     数据更新成功,给出提示
     
     修改后的结果

     以上就是真个案例的效果图
     预备知识学习:
       1)jQuery中的ajax请求的问题:
            

1. load( url, [data], [callback] ) :载入远程HTML 文件代码并插入至 DOM 中。

url(String) : 请求的HTML页的URL地址。

data(Map) : (可选参数) 发送至服务器的 key/value 数据。

callback(Callback) : (可选参数) 请求完成时(不需要是success的)的回调函数。

这个方法默认使用 GET 方式来传递的,如果[data]参数有传递数据进去,就会自动转换为POST方式的。jQuery 1.2 中,可以指定选择符,来筛选载入的 HTML 文档,DOM 中将仅插入筛选出的 HTML 代码。语法形如 "url #some >selector"。

这个方法可以很方便的动态加载一些HTML文件,例如表单。

示例代码:

$(".ajax.load").load("http://www.cnblogs.com/QLeelulu/archive/2008/03/30/1130270.html.post",
function(responseText, textStatus, XMLHttpRequest){
this;//在这里this指向的是当前的DOM对象,即$(".ajax.load")[0]
//alert(responseText);//请求返回的内容
//alert(textStatus);//请求状态:success,error
//alert(XMLHttpRequest);//XMLHttpRequest对象
});

这里将显示结果。

注:不知道为什么URL写绝对路径在FF下会出错,知道的麻烦告诉下。下面的get()和post()示例使用的是绝对路径,所以在FF下你将会出错并不会看到返回结果。还有get()和post()示例都是跨域调用的,发现传上来后没办法获取结果,所以把运行按钮去掉了。

2. jQuery.get( url, [data], [callback] ):使用GET方式来进行异步请求

参数:

url(String) : 发送请求的URL地址.

data(Map) : (可选) 要发送给服务器的数据,以 Key/value 的键值对形式表示,会做为QueryString附加到请求URL中。

callback(Function) : (可选) 载入成功时回调函数(只有当Response的返回状态是success才是调用该方法)。

这是一个简单的 GET 请求功能以取代复杂 $.ajax 。请求成功时可调用回调函数。如果需要在出错时执行函数,请使用$.ajax。示例代码:

$.get("./Ajax.aspx", {Action:"get",Name:"lulu"},function (data, textStatus){
//返回的data 可以是 xmlDoc, jsonObj, html, text, 等等.
this;// 在这里this指向的是Ajax请求的选项配置信息,请参考下图
alert(data);
//alert(textStatus);//请求状态:success,error等等。
当然这里捕捉不到error,因为error的时候根本不会运行该回调函数
//alert(this);
});

点击发送请求:

jQuery.get()回调函数里面的 this ,指向的是Ajax请求的选项配置信息:


3. jQuery.post( url, [data], [callback], [type] ) :使用POST方式来进行异步请求

参数:

url(String) : 发送请求的URL地址.

data(Map) : (可选) 要发送给服务器的数据,以 Key/value 的键值对形式表示。

callback(Function) : (可选) 载入成功时回调函数(只有当Response的返回状态是success才是调用该方法)。

type (String) : (可选)官方的说明是:Type of data to be sent。其实应该为客户端请求的类型(JSON,XML,等等)

这是一个简单的 POST 请求功能以取代复杂 $.ajax 。请求成功时可调用回调函数。如果需要在出错时执行函数,请使用$.ajax。示例代码:

Ajax.aspx:
Response.ContentType= "application/json";
Response.Write("{result: '" + Request["Name"] + ",你好!(这消息来自服务器)'}");
jQuery 代码:

$.post("Ajax.aspx", { Action: "post", Name: "lulu"},
function(data, textStatus){
// data 可以是xmlDoc, jsonObj, html, text, 等等.
//this;// 这个Ajax请求的选项配置信息,请参考jQuery.get()说到的this
alert(data.result);
}, "json");

点击提交:

这里设置了请求的格式为"json":

如果你设置了请求的格式为"json",此时你没有设置Response回来的ContentType 为:Response.ContentType ="application/json"; 那么你将无法捕捉到返回的数据。

注意一下,alert(data.result); 由于设置了Accept报头为“json”,这里返回的data就是一个对象,并不需要用eval()来转换为对象。

源码见下篇:[原创+源码]绝对强悍:jQuery实现可编辑表格的用户管理系统 (二)

关于jQuery中ajax使用详解,请见另外一篇文章:

jQuery Ajax全解析,初学者有福了~

或jQuery基础笔记学习之  [转]农民的jQuery之旅

 [原创地址]    [源码下载]    [更多原创,多多支持多]

你可能感兴趣的:(jquery,Ajax,json,url,XMLhttpREquest,callback)