[转]xajax会员注册实例
2006-10-04 15:16
357 查看
作者: 无喱头
出处: www.phpsoho.com
自去年以来,ajax应用是层出不穷,虽然笔者并不强烈的建议在的前端程序中使用ajax,除非你与google、baidu有着友好的合作关系,但技术的探讨是无限的。下面笔者就给一个ajax会员注册检查的DEMO。
对于phper来说,javascript并不是我们的必修课程,但ajax对javascript的要求是相当高的,我们可能被长篇幅的js脚本吓退,从而使我们放弃学习ajax。但幸运的是,总有是无私的人在为phper完成想要的东西。例如:xajax。
正如我所说,并不是所有的phper对js都了如指掌,我也一样。那么还犹豫什么呢?就使用xajax吧(做个广告^_^!)。
首先布署一下我们的文件系统,这次DEMO的目录结构如下:
文件系统布署完毕,现在开始实际应用吧!
我们忽略文件系统配置(具体请看实例),单从xajax这块说起。
在reguser.php文件中,大家已经看到,我们引入了xajax驱动文件,由于xajax提供了xajax::getJavascript()方法,所以笔者认为使得xajax有
更高的灵活与兼容性,能与任何(笔者武断的?)模板文件相结合,正如例子中的
所表现的一现,smarty很容易的就能把由xajax产生的xajax驱动JS发送到前端系统
中去。这也是我为什么使用此类的原因之一。
那么我们接着讲实际实用。
我们不讨论register.php程序的运行、实现原理,来看
在方法内部,实例化了xajax类,很简单的把执行程序定位在了我们DEMO中检测文件。
通过xajax::registerFunction方法,我们注册了三个函数"processFormLoginName,
processFormNickName,processFormEmail",顾名思义,三个方法分别担负着检测三
项内容:“注册用户名、用户昵称及用户email”,并将由xajax内部产生的js文件发送到
前端。在我们显示表单的方法中载入,这就完成了第一步;
前端程序完事了,我们需要后台程序来进行支撑其运行,并动输入的内容进行检测。我一
直认为,尽可能的少给服务器压力,所以关于字符是合法,EMAIL是否合法,
字符长度限制这些初级的工作就交给JS做了,具体请看.tpl文件,上面有详细的code。
当然,我们需要在通过初步检测后,再进一点检测,这是后话了。
reguser.server.php,此文件位于libs/xajax/下面。重中之中,应该是这个文件了。
依然载入xajax类包,并且实例化,请注意,此处的实例化,没有必要再进行设置执行路
径了。在网上看到类似的文章,仍然在此处进行的路径设定。
其实这是没有必要的,因为xajax的追踪机制使用得默认的为当前文件。注册三个方法不
再重述。
在这个文件中,需要着重讲解的是 xajaxResponse 类包,这个类包可以说是xajax的最
核心的东西了。具体它的一些配置,用法及扩展(xajax为开发者提供了灵活简便的扩展接口,
具体可以看CU-PHP论坛中的版主的文章或者phpsoho.com查看相当资源),对于初学者
来说,其中的两个方法对我们最有用
前者为应用程序输出标准的xml,后者为调试代码(xajax允许在不打开xajax->debugOn()的方法下,对单个方法进行DEBUG),这也是xajax缔造者为
我们提供的一个很实用的方法。我们可能要随时调试我们的JS代码,但这却是令人头痛的事情。在大类的CODE中,我们很难分得清到底是那一段出错了。对
于JS,相应大多数人都有过这种感受。
使用方法简单得不用再说了。
我们就一个方法实例来进行讲解:
注:此方法必须在声明后才有效。
global $db,$lang; 引入下全局变量
$objResponse = new xajaxResponse(); 实例化 xajaxResponse类
$db->table = "reguser"; 设置执行的表名称 (表问我为啥只有reguser而没有带 litou_ 呢,自己去看源码,本DEMO中,提供了偶的sqlUtil类包,对于adodb相应扩展);
其实上面的流程大家写得可能比我更出色。。。。然后我们进行用户登陆名称检测,根据相应的结果,返回相应的值,并且返回一个对象。以至本文件最低的发出。。。
系统核心文件完成,那么我们如何在前端文件中使用呢?
DEMO提供了reguser.tpl文件。打开此文件,查找
此处接收了由smarty发送来由xajax产生的js代码。
查找
就这么简单。。。
有兴趣吗,自己试试?
虽然我不建议在前端程序中使用此类代码,但在大多数不靠google、baidu活着的网站中使用,效果还是不错的。
出处: www.phpsoho.com
自去年以来,ajax应用是层出不穷,虽然笔者并不强烈的建议在的前端程序中使用ajax,除非你与google、baidu有着友好的合作关系,但技术的探讨是无限的。下面笔者就给一个ajax会员注册检查的DEMO。
对于phper来说,javascript并不是我们的必修课程,但ajax对javascript的要求是相当高的,我们可能被长篇幅的js脚本吓退,从而使我们放弃学习ajax。但幸运的是,总有是无私的人在为phper完成想要的东西。例如:xajax。
正如我所说,并不是所有的phper对js都了如指掌,我也一样。那么还犹豫什么呢?就使用xajax吧(做个广告^_^!)。
首先布署一下我们的文件系统,这次DEMO的目录结构如下:
PHP代码:[code] |- register.php |- db_config.php |- drivers |- smarty |- adodb |- xajax |- libs |- mySmarty.class.php |- sqlUtil.class.php |- xajax.reg.server.php |- tempaltes |- default |- templates_c |- register.tpl |- images |- 图片文件略 因为本次DEMO是从以前程序中摘下来的,以前采用了语言包,为了方便,DEMO给出个小语 言包来 |- lang |- zh_cn.lang.php
文件系统布署完毕,现在开始实际应用吧!
我们忽略文件系统配置(具体请看实例),单从xajax这块说起。
在reguser.php文件中,大家已经看到,我们引入了xajax驱动文件,由于xajax提供了xajax::getJavascript()方法,所以笔者认为使得xajax有
更高的灵活与兼容性,能与任何(笔者武断的?)模板文件相结合,正如例子中的
PHP代码:[code] parent::assign('xajax_javascript', $this->xajax->getJavascript('drivers/xajax'));
所表现的一现,smarty很容易的就能把由xajax产生的xajax驱动JS发送到前端系统
中去。这也是我为什么使用此类的原因之一。
那么我们接着讲实际实用。
我们不讨论register.php程序的运行、实现原理,来看
PHP代码:[code] function __xajax() { $this->xajax = new xajax('libs/xajax/reguser.server.php'); $this->xajax->registerFunction('processFormLoginName'); $this->xajax->registerFunction('processFormNickName'); $this->xajax->registerFunction('processFormEmail'); parent::assign('xajax_javascript', $this->xajax->getJavascript('drivers/xajax')); }
在方法内部,实例化了xajax类,很简单的把执行程序定位在了我们DEMO中检测文件。
通过xajax::registerFunction方法,我们注册了三个函数"processFormLoginName,
processFormNickName,processFormEmail",顾名思义,三个方法分别担负着检测三
项内容:“注册用户名、用户昵称及用户email”,并将由xajax内部产生的js文件发送到
前端。在我们显示表单的方法中载入,这就完成了第一步;
前端程序完事了,我们需要后台程序来进行支撑其运行,并动输入的内容进行检测。我一
直认为,尽可能的少给服务器压力,所以关于字符是合法,EMAIL是否合法,
字符长度限制这些初级的工作就交给JS做了,具体请看.tpl文件,上面有详细的code。
当然,我们需要在通过初步检测后,再进一点检测,这是后话了。
reguser.server.php,此文件位于libs/xajax/下面。重中之中,应该是这个文件了。
依然载入xajax类包,并且实例化,请注意,此处的实例化,没有必要再进行设置执行路
径了。在网上看到类似的文章,仍然在此处进行的路径设定。
其实这是没有必要的,因为xajax的追踪机制使用得默认的为当前文件。注册三个方法不
再重述。
在这个文件中,需要着重讲解的是 xajaxResponse 类包,这个类包可以说是xajax的最
核心的东西了。具体它的一些配置,用法及扩展(xajax为开发者提供了灵活简便的扩展接口,
具体可以看CU-PHP论坛中的版主的文章或者phpsoho.com查看相当资源),对于初学者
来说,其中的两个方法对我们最有用
PHP代码:[code] xajaxResponse::addAssign($sTarget,$sAttribute,$sData); xajaxResponse::addAlert($sMsg);
前者为应用程序输出标准的xml,后者为调试代码(xajax允许在不打开xajax->debugOn()的方法下,对单个方法进行DEBUG),这也是xajax缔造者为
我们提供的一个很实用的方法。我们可能要随时调试我们的JS代码,但这却是令人头痛的事情。在大类的CODE中,我们很难分得清到底是那一段出错了。对
于JS,相应大多数人都有过这种感受。
使用方法简单得不用再说了。
我们就一个方法实例来进行讲解:
PHP代码:[code] function processFormLoginName($aFormValues) { global $db,$lang; $objResponse = new xajaxResponse(); $db->table = "reguser"; if( !$db->checkIsExist('loginname',$aFormValues['loginname']) ) { $objResponse->addAssign('regloginnameinfo','className', 'box_error'); $objResponse->addAssign('regloginnameinfo','innerHTML', $lang['loginNameIsExist']); } else { $objResponse->addAssign('regloginnameinfo','className', 'box_right'); $objResponse->addAssign('regloginnameinfo','innerHTML', $lang['regInputOk']); } return $objResponse; }
注:此方法必须在声明后才有效。
global $db,$lang; 引入下全局变量
$objResponse = new xajaxResponse(); 实例化 xajaxResponse类
$db->table = "reguser"; 设置执行的表名称 (表问我为啥只有reguser而没有带 litou_ 呢,自己去看源码,本DEMO中,提供了偶的sqlUtil类包,对于adodb相应扩展);
其实上面的流程大家写得可能比我更出色。。。。然后我们进行用户登陆名称检测,根据相应的结果,返回相应的值,并且返回一个对象。以至本文件最低的发出。。。
系统核心文件完成,那么我们如何在前端文件中使用呢?
DEMO提供了reguser.tpl文件。打开此文件,查找
PHP代码:[code] <{$xajax_javascript}>
此处接收了由smarty发送来由xajax产生的js代码。
查找
PHP代码:[code] xajax_processFormLoginName(xajax.getFormValues("Form1")); xajax_processFormNickName(xajax.getFormValues("Form1")); xajax_processFormEmail(xajax.getFormValues("Form1"));
就这么简单。。。
有兴趣吗,自己试试?
虽然我不建议在前端程序中使用此类代码,但在大多数不靠google、baidu活着的网站中使用,效果还是不错的。
相关文章推荐
- 会员注册实例
- cakephp会员注册及登录验证实例
- jquery注册文本框获取焦点清空,失去焦点赋值的简单实例
- DEDE去掉会员登录及注册验证码
- 第三百八十四节,Django+Xadmin打造上线标准的在线教育平台—路由映射与静态文件配置以及会员注册
- ajax实例--注册
- 第33课: Spark Executor内幕彻底解密:Executor工作原理图、ExecutorBackend注册源码解密、Executor实例化内幕、Executor具体工作内幕
- 电商网站购买流程的一些思考(注册、一键购买、会员激励)
- Pjsip:用户注册多线程实例
- 织梦前台注册会员上传文章遇到的一些问题
- javascript用户注册提示效果的简单实例
- jsp基于XML实现用户登录与注册的实例解析(附源码)
- 很高兴,今天我的网站的注册会员达到了4000了
- java获取注册ip实例
- php会员注册前台-找回密码,修改资料
- dedecms页面如何获取会员状态的实例代码
- Struts 注册、登陆、email实例解析
- 利用ajax实现简单的注册验证局部刷新实例
- magento把产品价格隐藏起来,只让注册的会员看到产品价格
- magento把产品价格隐藏起来,只让注册的会员看到产品价格