2023年6月21日发(作者:)

訇 化 l 基于jQuery框架的Ajax应用开发 Ajax application development based on jQuery framework 赵增敏。李惠敏 ZHA0 Zeng.min.LI Hui.rnin (河南信息工程学校,郑州450008) 摘要:通过 ̄jquery框架的AJax功能的分析,使用PHP作为Web开发技术并以MySQL作为后台数据 库,提出了一种基于jQuery框架实现AJaX异步请求和页面局部刷新的方法,并实现了用户名 即时验证和表单数据的检测功能,还给出了防止产生乱码的解决方案。本文介绍了上述功能 的详细实现步骤并给出了关键代码。 关键词:jQuery; OX;异步请求 中图分类号:TP319 文献标识码:A 文章编号:1 009-01 34(201 2)1 0(上)-ooi 8-02 Doi:1 0.3969/J.issn.1 009-01 34.201 2.1 0(上).07 0引言 Ajax是使用客户端脚本与Web服务器交换数 CREATE TABLE users( usemame varchar(1 0)NOT NULL, password varchar(1 2)NOT ULL,N PRIMARY KEY(usemame) 、ENGINE=InnoDB DEFAULT CHARSET =gb2312; 据的Web应用开发技术。近年来该技术在Web应 用开发中得到越来越多的应用。实际上Ajax是一 组现有技术的无缝整合。XMLHttpRequest对象 (简称为XHR)是Ajax技术的核心,在JavaScript 脚本中可使用该对象来实现对服务器的异步请求, 即在后台发送请求并接收服务器响应,并使用响 应的数据来更新局部页面,以改进用户体验。使 用传统方法进行Ajax应用开发包括一系列步骤, 整个编程过程颇为烦琐。jQuery是一个轻量级的 Ajax框架,它对XMLHttpRequest对象进行了良好 的封装,提供了一套完整的Ajax功能,极大地简 化了Ajax应用开发过程。本文结合常用的用户注 册模块探讨了jQuery框架在Ajax开发的应用,以 2创建用户注册页面 创建一个PHP页并命名为reg.php。该页面的 功能是注册新用户。在输入用户名的过程中,一 旦光标离开相应的文本框,便通过jQuery脚本请 求服务器上的验证用户页面checkuser.php,并即时 显示所输入的用户名是否可用。如果在提示用户 名不可用的情况仍然提交表单数据,则通过PHP 服务器代码进行处理。 简洁方式实现了Ajax异步请求并实现用户名即时 验证和表单数据检测等功能。 2.1创建注册表单 在reg.php页中创建一个注册表单,HTML代 码如下: <form method=”POST”name=”form 1”id =1创建后台数据库 选择MySQL作为后台数据库服务器。为了存 储用户信息,可在MySQL服务器上创建一个web 数据库并在其中添加一个users表,为此可运行 ”forml”> <p><strong>注册新用户</strong></p> <p>用户名:<mpm type--”text”name=”usemame” id=”username”><span id=”msg l”></span></p> mysql命令行工具输入并执行以下SQL语句: CREATE DATABASE web; USEweb; DROP TABLE IF EXISTS users; <p>密码:<inputtype=’'password'’name=’'password'’ id=”password”><span id=”msg2”></span></p> <p><input type=”submit”value=”注册”></p> 收稿日期:2012-03-03 作者简介:赵增敏(1958一),男,河南郑州人,高级讲师,研究方向为软件工程。 【18】 第34卷第1O期2012—10(上) I </form> 匐 似 显示在id为msgl的span元素中;另一个是提交 其中id为msgl和msg2的两个span元素用 于显示验证文本信息。 表单时执行的submit事件处理程序,其功能是对 表单数据进行检验。源代码如下: <script type ”text/javascript”> ¥(document).ready(function(){ 2-2通过PHP ̄.务器代码验证和创建用户 当用户提交注册表单时,数据将提交到当前 页。在该页开头编写P 代码,以创建数据库连 接,然后查询提交的用户名是否存在于users表中, 对新用户名进行验证。若已存在于users表中,则 显示出错信息并结束运行。若未存在于users表中, //注册文本框的blur事件处理程序 ¥(”#usemame”).blr(fuunction0{ ¥(”#msg1”).1oad(”checkuser.php”, {username:¥(”#usemame”).Val())); 则使用所提交的数据添加一个新用户。源代码如下: <?php if((isset(¥_POST[”username”】))&& (isset(¥_POST[”password”】))){ ¥users=mysql_pconnect(”localhost","root”,”1 2 3”)or triggererror(mysql_error(),E_USER_ERROR); mysqlselect__db(”web",¥users); ¥sql=sprintf(”SELECT FROM users WHERE username=’%s…,¥_POST[’usemame’]); ¥rs mysql—query(¥sql,¥users)or die(mysql— error()); ¥totalRowsrs--mysqlnum__rows(¥rs); if(¥totalRows_rs>0){ echo sprintf(”用户名%s已被注册。”, ¥_POST[’usemame’]); exit; ) Ssql=sprintf(”INSERT INTO users(usemame, password)VALUES(’%s’,’%s’)”, S_POST[’username’],S_POST[’password’]); ¥result=mysql—query(¥sql,¥users)or die(mysql_error()); if(¥result=1)echo”新用户注册成功。”; } ?> 2.3通j ̄jQuerym本实t. ̄,Ajax异步请求 为了引用jQuery库,首先在reg.php页中使用 script标签引入相应的js库文件: <script src=’'jquery一1.7.1 js”t),pe=”text/javascript”> </script> 接着通过jQuery脚本注册两个事件处理程 序:一个是当光标离开文本框usemame时执行的 blur事件处理程序,通过它向服务器上的PHP页 checkuser.php提交用户名和密码并将响应的信息 }); //注册表单的submit事件处理程序 ¥ #form l”).submit(function0{ varflag=false; if(S(”#usemame”).val0==…’){ ¥(”#msgl”).html(”请输入用户名。 ”).css(”color","red”); }if(S(”#password”).valO==””){ ¥(”#msg2”).html(”请输入密码。”).css ("color","red”); }else{ lfag--true; ) returnflag; }); }); </script> 需要强调指出的是,通过对span元素msgl 调用jQuery load方法,可从服务器上加载一个 PHP页;由于传入的附加参数是以映射形式指定 的,因此会向服务器异步发送一个POST请求。若 要通过普通的JavaScript脚本来实现同样的功能, 则需要编写大量的代码,从创建跨浏览器的XHR 对象到初始化请求,从发送异步请求、接受服务 器响应到更新页面,都需要自己编程来实现。 3在服务器上通过PHP代码检查用户 为了在光标离开“用户名”文本框即时检查所 输入的用户名,通过jQuery脚本加载服务器上的 checkuser.php页。在该页上连接到后台数据库并 创建一个记录集,并根据记录集是否为空向客户 端返回不同信息。源代码如下: <?php header(”Content—Type:text/html;charset=gb23 12”); ¥username=mbconvert——encoding(¥一POST 第34卷第1O期2012-10(上) 【19】 l [’usemame’】, ”GB23 1 2”,”UTF一8”); ¥users=mysqlpconnect(”localhost","root","123”) _匐 似 ‘,> 在上述代码中,第1行代码将该页的字符集 设置为简体中文;第2行代码将提交的用户名转 换为简体中文。这两行代码对于防止出现乱码起 or triggererror(mysql_error0,E_USER_ERROR); mysqlselect db(”web”,Susers); _头非常重要的作用。如果没有这些代码,就可能 无法得到预期的结果。 ¥sql=sprintf(”SELECT FROM users WHERE usemame=’%s”’.¥usemame); ¥rs=mysqlquery(¥sql,¥users)or die(mysql— —4结束语 本文通过引入jQuery框架大大简化了Ajax应 用开发的过程,既实现了用户名的即时验证,也 实现了表单数据的检测,还通过PHP代码对Ajax 提交的数据进行了正确的解码。虽然在服务器端 使用了PHP技术,但本文中所提出的方法同样适 应于ASP、JSP等其他服务器技术。 error()); ¥rowrs ysqlfetchassoc(¥rs); __Stota1Rowsrs=mysqlnumrows(¥rs); __if(¥totalRows_rs==0){ echo sprintf(”<font color=blue>用户名%s可 用</f0nt>”,¥username); }else{ echo sprintf(”<f0nt color=red>用户名%s不 可用</font>",.¥usemame); } mysqlfree__参考文献: [1】赵增敏.jQuery全面提速【M】.北京:机械工业出版社, 2010. 【2】赵增敏.PHP动态网站开发【M】.北京:电子工业出版社, 2011 result(¥rs); .山. 矗● 蠡I{重●. ‘‘ 矗‘ 蠡● 蠡● 蠡‘{蠡‘ 矗‘ 矗‘ 蠡● 矗‘ 蠡● 蠡‘ 矗‘ 矗● 盘● . 矗‘ 蠡‘ 童●出【上接第14页】 力矩迅速下降;其后,温差、温差变化率变化减 小,可控硅控制角小幅度调整,制动力矩趋于稳 定;当检测到转子温度低于设定温度时,可控硅 控制角恢复初值,控制器切换到开环PWM控制模 式,满足低温时尽可能提供较大制动力矩的需求。 的计算方法【J].兵工学报,2007,28(1):52—56. 【3】杨福广,阮久宏,李贻斌.4WlD一4WlS车辆横摆运动 AFS+ARS+DYC模糊控制[J].农业机械学报,201 1,42(10): 6.12. 【4】Karbalaei R,Ghaffari A,Kazemi R.Design of an integrated AFS DYC based on fuzzy logic control[C].IEEE International Confe.rence on Vehicular Electronics and Safety.2007,1-6. 4结束语 试验证明以转子温差及其温差变化率为输入 变量,以可控硅控制角变化量为输出变量的自励 【5】SI Hongwei,LI Dongxu.Active control of vibration using a fuzzycontrolmethodbasedon scalinguniversesofdiscourse【J】. SmartMa als andStructures.200l7'(16):555—560. 式缓速器制动力矩闭环模糊控制实现了制动功率 与转子温度的动态平衡,并将自励式缓速器转子 [6】LU Qing,PENG Zhike,CHU Fulei,eta1.Design of fuzzy controller for smart structures using genetic algorithms[J]. Smart Materials and Structures.2003,(12):979—986. 温度控制在安全工作范围,避免了高温情况下需 停止缓速器工作所带来的制动力矩突然消失或阶 跃性下降,提高了行车制动安全性。文中提出的 基于转子温差、温差变化率的制动力矩模糊控制 【7】管成,彭华.基于非线性函数的注塑机注射压力模糊控 制【J】.浙江大学学报,201 1,45(8):1382-1386. 【8】Amir Poursamad,Morteza Montazeri.Deisgn of genetic uzzy fcontrol strategy for parallel hybrid electric vehicles[J]. Control Engineering Practice.2008,(16):861-873. 思想可以为解决电涡流缓速器转子高温问题提供 借鉴和参考。 参考文献: 【1】何仁,刘成哗.车用电涡流缓速器转子盘非稳态温度场 【9】Michels K.A.Model—Based Fuzzy Control-ler[J1.Fuzzy Sets and Systems.1997,85(2):223—232. 【10]Renders JM,Saerens M,Bersini H.Fuzzy Adaptive Control of a Certain Class of SISO Discrete—Time Processes[J】. Fuzzy Sets and Systems.1997,85(1):49—62. 数值分析【J].汽车工程,2006,28(2):181—185. [2】何仁,赵万忠,胡青训.永磁式缓速器转子鼓瞬态温度场 [20】 第34卷第1O期2012—10(上) 

2023年6月21日发(作者:)

訇 化 l 基于jQuery框架的Ajax应用开发 Ajax application development based on jQuery framework 赵增敏。李惠敏 ZHA0 Zeng.min.LI Hui.rnin (河南信息工程学校,郑州450008) 摘要:通过 ̄jquery框架的AJax功能的分析,使用PHP作为Web开发技术并以MySQL作为后台数据 库,提出了一种基于jQuery框架实现AJaX异步请求和页面局部刷新的方法,并实现了用户名 即时验证和表单数据的检测功能,还给出了防止产生乱码的解决方案。本文介绍了上述功能 的详细实现步骤并给出了关键代码。 关键词:jQuery; OX;异步请求 中图分类号:TP319 文献标识码:A 文章编号:1 009-01 34(201 2)1 0(上)-ooi 8-02 Doi:1 0.3969/J.issn.1 009-01 34.201 2.1 0(上).07 0引言 Ajax是使用客户端脚本与Web服务器交换数 CREATE TABLE users( usemame varchar(1 0)NOT NULL, password varchar(1 2)NOT ULL,N PRIMARY KEY(usemame) 、ENGINE=InnoDB DEFAULT CHARSET =gb2312; 据的Web应用开发技术。近年来该技术在Web应 用开发中得到越来越多的应用。实际上Ajax是一 组现有技术的无缝整合。XMLHttpRequest对象 (简称为XHR)是Ajax技术的核心,在JavaScript 脚本中可使用该对象来实现对服务器的异步请求, 即在后台发送请求并接收服务器响应,并使用响 应的数据来更新局部页面,以改进用户体验。使 用传统方法进行Ajax应用开发包括一系列步骤, 整个编程过程颇为烦琐。jQuery是一个轻量级的 Ajax框架,它对XMLHttpRequest对象进行了良好 的封装,提供了一套完整的Ajax功能,极大地简 化了Ajax应用开发过程。本文结合常用的用户注 册模块探讨了jQuery框架在Ajax开发的应用,以 2创建用户注册页面 创建一个PHP页并命名为reg.php。该页面的 功能是注册新用户。在输入用户名的过程中,一 旦光标离开相应的文本框,便通过jQuery脚本请 求服务器上的验证用户页面checkuser.php,并即时 显示所输入的用户名是否可用。如果在提示用户 名不可用的情况仍然提交表单数据,则通过PHP 服务器代码进行处理。 简洁方式实现了Ajax异步请求并实现用户名即时 验证和表单数据检测等功能。 2.1创建注册表单 在reg.php页中创建一个注册表单,HTML代 码如下: <form method=”POST”name=”form 1”id =1创建后台数据库 选择MySQL作为后台数据库服务器。为了存 储用户信息,可在MySQL服务器上创建一个web 数据库并在其中添加一个users表,为此可运行 ”forml”> <p><strong>注册新用户</strong></p> <p>用户名:<mpm type--”text”name=”usemame” id=”username”><span id=”msg l”></span></p> mysql命令行工具输入并执行以下SQL语句: CREATE DATABASE web; USEweb; DROP TABLE IF EXISTS users; <p>密码:<inputtype=’'password'’name=’'password'’ id=”password”><span id=”msg2”></span></p> <p><input type=”submit”value=”注册”></p> 收稿日期:2012-03-03 作者简介:赵增敏(1958一),男,河南郑州人,高级讲师,研究方向为软件工程。 【18】 第34卷第1O期2012—10(上) I </form> 匐 似 显示在id为msgl的span元素中;另一个是提交 其中id为msgl和msg2的两个span元素用 于显示验证文本信息。 表单时执行的submit事件处理程序,其功能是对 表单数据进行检验。源代码如下: <script type ”text/javascript”> ¥(document).ready(function(){ 2-2通过PHP ̄.务器代码验证和创建用户 当用户提交注册表单时,数据将提交到当前 页。在该页开头编写P 代码,以创建数据库连 接,然后查询提交的用户名是否存在于users表中, 对新用户名进行验证。若已存在于users表中,则 显示出错信息并结束运行。若未存在于users表中, //注册文本框的blur事件处理程序 ¥(”#usemame”).blr(fuunction0{ ¥(”#msg1”).1oad(”checkuser.php”, {username:¥(”#usemame”).Val())); 则使用所提交的数据添加一个新用户。源代码如下: <?php if((isset(¥_POST[”username”】))&& (isset(¥_POST[”password”】))){ ¥users=mysql_pconnect(”localhost","root”,”1 2 3”)or triggererror(mysql_error(),E_USER_ERROR); mysqlselect__db(”web",¥users); ¥sql=sprintf(”SELECT FROM users WHERE username=’%s…,¥_POST[’usemame’]); ¥rs mysql—query(¥sql,¥users)or die(mysql— error()); ¥totalRowsrs--mysqlnum__rows(¥rs); if(¥totalRows_rs>0){ echo sprintf(”用户名%s已被注册。”, ¥_POST[’usemame’]); exit; ) Ssql=sprintf(”INSERT INTO users(usemame, password)VALUES(’%s’,’%s’)”, S_POST[’username’],S_POST[’password’]); ¥result=mysql—query(¥sql,¥users)or die(mysql_error()); if(¥result=1)echo”新用户注册成功。”; } ?> 2.3通j ̄jQuerym本实t. ̄,Ajax异步请求 为了引用jQuery库,首先在reg.php页中使用 script标签引入相应的js库文件: <script src=’'jquery一1.7.1 js”t),pe=”text/javascript”> </script> 接着通过jQuery脚本注册两个事件处理程 序:一个是当光标离开文本框usemame时执行的 blur事件处理程序,通过它向服务器上的PHP页 checkuser.php提交用户名和密码并将响应的信息 }); //注册表单的submit事件处理程序 ¥ #form l”).submit(function0{ varflag=false; if(S(”#usemame”).val0==…’){ ¥(”#msgl”).html(”请输入用户名。 ”).css(”color","red”); }if(S(”#password”).valO==””){ ¥(”#msg2”).html(”请输入密码。”).css ("color","red”); }else{ lfag--true; ) returnflag; }); }); </script> 需要强调指出的是,通过对span元素msgl 调用jQuery load方法,可从服务器上加载一个 PHP页;由于传入的附加参数是以映射形式指定 的,因此会向服务器异步发送一个POST请求。若 要通过普通的JavaScript脚本来实现同样的功能, 则需要编写大量的代码,从创建跨浏览器的XHR 对象到初始化请求,从发送异步请求、接受服务 器响应到更新页面,都需要自己编程来实现。 3在服务器上通过PHP代码检查用户 为了在光标离开“用户名”文本框即时检查所 输入的用户名,通过jQuery脚本加载服务器上的 checkuser.php页。在该页上连接到后台数据库并 创建一个记录集,并根据记录集是否为空向客户 端返回不同信息。源代码如下: <?php header(”Content—Type:text/html;charset=gb23 12”); ¥username=mbconvert——encoding(¥一POST 第34卷第1O期2012-10(上) 【19】 l [’usemame’】, ”GB23 1 2”,”UTF一8”); ¥users=mysqlpconnect(”localhost","root","123”) _匐 似 ‘,> 在上述代码中,第1行代码将该页的字符集 设置为简体中文;第2行代码将提交的用户名转 换为简体中文。这两行代码对于防止出现乱码起 or triggererror(mysql_error0,E_USER_ERROR); mysqlselect db(”web”,Susers); _头非常重要的作用。如果没有这些代码,就可能 无法得到预期的结果。 ¥sql=sprintf(”SELECT FROM users WHERE usemame=’%s”’.¥usemame); ¥rs=mysqlquery(¥sql,¥users)or die(mysql— —4结束语 本文通过引入jQuery框架大大简化了Ajax应 用开发的过程,既实现了用户名的即时验证,也 实现了表单数据的检测,还通过PHP代码对Ajax 提交的数据进行了正确的解码。虽然在服务器端 使用了PHP技术,但本文中所提出的方法同样适 应于ASP、JSP等其他服务器技术。 error()); ¥rowrs ysqlfetchassoc(¥rs); __Stota1Rowsrs=mysqlnumrows(¥rs); __if(¥totalRows_rs==0){ echo sprintf(”<font color=blue>用户名%s可 用</f0nt>”,¥username); }else{ echo sprintf(”<f0nt color=red>用户名%s不 可用</font>",.¥usemame); } mysqlfree__参考文献: [1】赵增敏.jQuery全面提速【M】.北京:机械工业出版社, 2010. 【2】赵增敏.PHP动态网站开发【M】.北京:电子工业出版社, 2011 result(¥rs); .山. 矗● 蠡I{重●. ‘‘ 矗‘ 蠡● 蠡● 蠡‘{蠡‘ 矗‘ 矗‘ 蠡● 矗‘ 蠡● 蠡‘ 矗‘ 矗● 盘● . 矗‘ 蠡‘ 童●出【上接第14页】 力矩迅速下降;其后,温差、温差变化率变化减 小,可控硅控制角小幅度调整,制动力矩趋于稳 定;当检测到转子温度低于设定温度时,可控硅 控制角恢复初值,控制器切换到开环PWM控制模 式,满足低温时尽可能提供较大制动力矩的需求。 的计算方法【J].兵工学报,2007,28(1):52—56. 【3】杨福广,阮久宏,李贻斌.4WlD一4WlS车辆横摆运动 AFS+ARS+DYC模糊控制[J].农业机械学报,201 1,42(10): 6.12. 【4】Karbalaei R,Ghaffari A,Kazemi R.Design of an integrated AFS DYC based on fuzzy logic control[C].IEEE International Confe.rence on Vehicular Electronics and Safety.2007,1-6. 4结束语 试验证明以转子温差及其温差变化率为输入 变量,以可控硅控制角变化量为输出变量的自励 【5】SI Hongwei,LI Dongxu.Active control of vibration using a fuzzycontrolmethodbasedon scalinguniversesofdiscourse【J】. SmartMa als andStructures.200l7'(16):555—560. 式缓速器制动力矩闭环模糊控制实现了制动功率 与转子温度的动态平衡,并将自励式缓速器转子 [6】LU Qing,PENG Zhike,CHU Fulei,eta1.Design of fuzzy controller for smart structures using genetic algorithms[J]. Smart Materials and Structures.2003,(12):979—986. 温度控制在安全工作范围,避免了高温情况下需 停止缓速器工作所带来的制动力矩突然消失或阶 跃性下降,提高了行车制动安全性。文中提出的 基于转子温差、温差变化率的制动力矩模糊控制 【7】管成,彭华.基于非线性函数的注塑机注射压力模糊控 制【J】.浙江大学学报,201 1,45(8):1382-1386. 【8】Amir Poursamad,Morteza Montazeri.Deisgn of genetic uzzy fcontrol strategy for parallel hybrid electric vehicles[J]. Control Engineering Practice.2008,(16):861-873. 思想可以为解决电涡流缓速器转子高温问题提供 借鉴和参考。 参考文献: 【1】何仁,刘成哗.车用电涡流缓速器转子盘非稳态温度场 【9】Michels K.A.Model—Based Fuzzy Control-ler[J1.Fuzzy Sets and Systems.1997,85(2):223—232. 【10]Renders JM,Saerens M,Bersini H.Fuzzy Adaptive Control of a Certain Class of SISO Discrete—Time Processes[J】. Fuzzy Sets and Systems.1997,85(1):49—62. 数值分析【J].汽车工程,2006,28(2):181—185. [2】何仁,赵万忠,胡青训.永磁式缓速器转子鼓瞬态温度场 [20】 第34卷第1O期2012—10(上)