热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

php的ajax框架xajax入门与试用介绍

xajax功能很简单,但很灵活!~它不象其它一些大的框架,功能确实强大,但执行速度不敢恭维。。功能虽多,但不够灵活。api多,学起来简直如同学习一门新的语言。
一、xajax与其它ajax框架的比较
xajax功能很简单,但很灵活!~它不象其它一些大的框架,功能确实强大,但执行速度不敢恭维。。功能虽多,但不够灵活。api多,学起来简直如同学习一门新的语言。
二、xajax功能介绍
xajax的功能比较简单,但就因为简单,所以灵活。同时,这也要求使用者要对javascrīpt / vbs 客户端脚本有一定的了解。因为它的功能是比较活的。可以说单纯使用xajax,什么也做不出,但配合js / vbs 又什么都做的出。
xajax主要是使用xajaxResponse这个类,它提供了一些方法,举例如下:
1、addAlert($sMsg)
弹出警告
2、addscrīpt($sJS)
执行某段js
3、$objResponse->addAssign("","","")
给页面中的某个元素附值,或者修改其属性
等等。。。。

所以xajax不是死的,它不能做出XXX XXX功能来,但是它可以灵活的控制客户端的js / vbs,去完成我们要实现的效果。

三、xajax安装配置
不需要特别的安装和配置,只要下载其文件包,解压到网站目录中
下载地址:
http://www.xajaxproject.org/

四、用xajax做会员注册和登陆
1、数据库
采用mysql5.0,数据库名zl 表名zl_user 表结构
id int(11) auto_increment
zl_user varchar(50)
zl_pwd varchar(50)
email varchar(50)

http://blog.knowsky.com/

2、reg.php 注册文件(内有说明)

代码如下:


require_once("inc/xajax.inc.php");
//使用xajax则必须首先引入xajax.inc.php
$xajax = new xajax("inc/signup.php");
//创建一个xajax对象,为singup.php
$xajax->registerFunction("processForm");
//使用singup.php里的processForm函数
?>
printJavascrīpt('inc/'); ?>

function submitSignup()
{
xajax.$('submitButton').disabled=true;
xajax.$('submitButton').value="http://blogbeta.blueidea.com/wait...";
//修改id为submitButton的属性
xajax_processForm(xajax.getFormValues("signupForm"));
//这里xajax_ 后面跟要使用哪个函数这里是 processForm,后面跟的是signupForm这个表单各项的集合
return false;
}


用 户 注 册



























用户名:
*
密码:
*
密码:
*
Email:
* 可用于找回密码




点提交后执行singup.php里的processForm函数

3、inc/singup.php

代码如下:


define ('XAJAX_DEFAULT_CHAR_ENCODING', 'gb2312' );
//注意这里,必须要设置gb2312,不然中文会乱码
require_once("xajax.inc.php");
require_once("function.php");
$xajax = new xajax();
$xajax->registerFunction("processForm");
//同reg.php文件

function processForm($aFormValues)
{
$objRespOnse= new xajaxResponse();
require_once("conn.php");
$usr=$aFormValues['usr'];
$email=$aFormValues['email'];
$pwd=$aFormValues['pwd'];
$pw=Md5($pwd);
$errmsg="";
//要过滤的非法字符
$ArrFiltrate=array("'",";","union");

foreach($aFormValues as $key=>$value){
if (FunStringExist($value,$ArrFiltrate)){
$objResponse->addAlert("输入的信息含有非法字符\"' ; union!\"");
$objResponse->addAssign("submitButton","value","继续");
$objResponse->addAssign("submitButton","disabled",false);
return $objResponse;
}
}

if (trim($usr) == "")
{
$errmsg.="请输入用户名!\n";
}
if (trim($pwd) == "")
{
$errmsg.="请输入密码!\n";
}
if ($pwd != $aFormValues['pwd2'])
{
$errmsg.="两次输入的密码不一致!\n";
}

if (!CheckEmailAddr($email))
{
$errmsg.="邮件地址不正确!\n";
}
$sql="select * from zl_usr where zl_usr='$usr'";
$result=mysql_query($sql,$db);
if($myrow=mysql_fetch_array($result)){
$errmsg.="用户名已经存在!\n";
}
if ($errmsg=="")
{
$sForm = "注册成功
用户名:".$usr."
email:".$email."";
$sql="insert into zl_usr(zl_usr,zl_pwd,email) values('$usr','$pw','$email')";
$result=mysql_query($sql,$db);
$objResponse->addAssign("formDiv","innerHTML",$sForm);
}
else
{
$objResponse->addAlert($errmsg);
//弹出错误信息
$objResponse->addAssign("submitButton","value","继续");
//修改submitButton的value为继续
$objResponse->addAssign("submitButton","disabled",false);
//修改submitButton这个按扭的属性
}

return $objResponse;
}


$xajax->processRequests();
?>


这个文件中对信息进行了有效性判断,包括:用户名是否已经注册过、信息中是否有非法字符、邮件地址是否正确、两次输入的密码是否一致,如果没有错误则输入到数据库中,并
$objResponse->addAssign("formDiv","innerHTML",$sForm);
在formDiv中重新插入代码,内容为$sForm
$sForm = "注册成功
用户名:".$usr."
email:".$email."";

如果有错误信息则
$objResponse->addAlert($errmsg);
//弹出错误信息
$objResponse->addAssign("submitButton","value","继续");
$objResponse->addAssign("submitButton","disabled",false);
//修改submitButton这个按扭的属性

3、login.php 登陆文件

代码如下:


require_once("inc/xajax.inc.php");
$xajax = new xajax("inc/login.php");
$xajax->registerFunction("processForm");
?>
printJavascrīpt('inc/'); ?>

function submitSignup()
{
xajax.$('submitButton').disabled=true;
xajax.$('submitButton').value="http://blogbeta.blueidea.com/wait...";
xajax_processForm(xajax.getFormValues("signupForm"));
return false;
}


用 户 登 陆




















用户名:
*
密码:
*




4、inc/login.php 登陆用的处理文件

代码如下:


define ('XAJAX_DEFAULT_CHAR_ENCODING', 'gb2312' );
require_once("xajax.inc.php");
require_once("function.php");
$xajax = new xajax();
$xajax->registerFunction("processForm");

function processForm($aFormValues)
{
$objRespOnse= new xajaxResponse();
require_once("conn.php");
$usr=$aFormValues['usr'];
$email=$aFormValues['email'];
$pwd=$aFormValues['pwd'];
$pw=Md5($pwd);
$errmsg="";
//要过滤的非法字符
$ArrFiltrate=array("'",";","union");

foreach($aFormValues as $key=>$value){
if (FunStringExist($value,$ArrFiltrate)){
$objResponse->addAlert("输入的信息含有非法字符\"' ; union!\"");
$objResponse->addAssign("submitButton","value","继续");
$objResponse->addAssign("submitButton","disabled",false);
return $objResponse;
}
}

if (trim($usr) == "")
{
$errmsg.="请输入用户名!\n";
}
if (trim($pwd) == "")
{
$errmsg.="请输入密码!\n";
}
$sql="select * from zl_usr where zl_usr='$usr' and zl_pwd='$pw'";
$result=mysql_query($sql,$db);
if(!$myrow=mysql_fetch_array($result)){
$errmsg.="用户名不存在,或密码错误!\n";
}
if ($errmsg=="")
{
$sForm = "登陆成功";
$objResponse->addAssign("formDiv","innerHTML",$sForm);
}
else
{
$objResponse->addAlert($errmsg);
$objResponse->addAssign("submitButton","value","继续");
$objResponse->addAssign("submitButton","disabled",false);
}

return $objResponse;
}


$xajax->processRequests();
?>


登陆于注册原理差不多,就不废话了:)

另外下面是两个用到的文件代码 conn.php function.php
conn.php

代码如下:


$database="zl";//MYSQL数据库名
$db = mysql_connect("127.0.0.1", "root","123456");//MYSQL数据库用户名和密码
mysql_select_db($database,$db);
?>
function.php

function CheckEmailAddr($C_mailaddr)
{
if (!eregi("^[_a-z0-9-] (.[_a-z0-9-] )*@[a-z0-9-] (.[a-z0-9-] )*$",
$C_mailaddr))
{
return false;
}
return true;
}
//是否存在数组中的值
function FunStringExist($StrFiltrate,$ArrFiltrate){
foreach ($ArrFiltrate as $key=>$value){
if (eregi($value,$StrFiltrate)){
return true;
}
}
return false;
}
?>

推荐阅读
  • 在说Hibernate映射前,我们先来了解下对象关系映射ORM。ORM的实现思想就是将关系数据库中表的数据映射成对象,以对象的形式展现。这样开发人员就可以把对数据库的操作转化为对 ... [详细]
  • 本文介绍了在开发Android新闻App时,搭建本地服务器的步骤。通过使用XAMPP软件,可以一键式搭建起开发环境,包括Apache、MySQL、PHP、PERL。在本地服务器上新建数据库和表,并设置相应的属性。最后,给出了创建new表的SQL语句。这个教程适合初学者参考。 ... [详细]
  • Java实战之电影在线观看系统的实现
    本文介绍了Java实战之电影在线观看系统的实现过程。首先对项目进行了简述,然后展示了系统的效果图。接着介绍了系统的核心代码,包括后台用户管理控制器、电影管理控制器和前台电影控制器。最后对项目的环境配置和使用的技术进行了说明,包括JSP、Spring、SpringMVC、MyBatis、html、css、JavaScript、JQuery、Ajax、layui和maven等。 ... [详细]
  • 本文介绍了在SpringBoot中集成thymeleaf前端模版的配置步骤,包括在application.properties配置文件中添加thymeleaf的配置信息,引入thymeleaf的jar包,以及创建PageController并添加index方法。 ... [详细]
  • 高质量SQL书写的30条建议
    本文提供了30条关于优化SQL的建议,包括避免使用select *,使用具体字段,以及使用limit 1等。这些建议是基于实际开发经验总结出来的,旨在帮助读者优化SQL查询。 ... [详细]
  • 在springmvc框架中,前台ajax调用方法,对图片批量下载,如何弹出提示保存位置选框?Controller方法 ... [详细]
  • 本文介绍了前端人员必须知道的三个问题,即前端都做哪些事、前端都需要哪些技术,以及前端的发展阶段。初级阶段包括HTML、CSS、JavaScript和jQuery的基础知识。进阶阶段涵盖了面向对象编程、响应式设计、Ajax、HTML5等新兴技术。高级阶段包括架构基础、模块化开发、预编译和前沿规范等内容。此外,还介绍了一些后端服务,如Node.js。 ... [详细]
  • Linux环境变量$PATH的作用及使用方法
    本文介绍了Linux环境变量$PATH的作用及使用方法。$PATH是一个由多个目录组成的变量,用冒号分隔。当执行一个指令时,系统会按照$PATH定义的目录顺序搜索同名的可执行文件,如果有多个同名指令,则先找到的会被执行。通过设置$PATH变量,可以在任何地方执行指令,无需输入绝对路径。 ... [详细]
  • 本文讨论了如何优化解决hdu 1003 java题目的动态规划方法,通过分析加法规则和最大和的性质,提出了一种优化的思路。具体方法是,当从1加到n为负时,即sum(1,n)sum(n,s),可以继续加法计算。同时,还考虑了两种特殊情况:都是负数的情况和有0的情况。最后,通过使用Scanner类来获取输入数据。 ... [详细]
  • 本文介绍了C#中数据集DataSet对象的使用及相关方法详解,包括DataSet对象的概述、与数据关系对象的互联、Rows集合和Columns集合的组成,以及DataSet对象常用的方法之一——Merge方法的使用。通过本文的阅读,读者可以了解到DataSet对象在C#中的重要性和使用方法。 ... [详细]
  • 本文介绍了OC学习笔记中的@property和@synthesize,包括属性的定义和合成的使用方法。通过示例代码详细讲解了@property和@synthesize的作用和用法。 ... [详细]
  • Mac OS 升级到11.2.2 Eclipse打不开了,报错Failed to create the Java Virtual Machine
    本文介绍了在Mac OS升级到11.2.2版本后,使用Eclipse打开时出现报错Failed to create the Java Virtual Machine的问题,并提供了解决方法。 ... [详细]
  • 知识图谱——机器大脑中的知识库
    本文介绍了知识图谱在机器大脑中的应用,以及搜索引擎在知识图谱方面的发展。以谷歌知识图谱为例,说明了知识图谱的智能化特点。通过搜索引擎用户可以获取更加智能化的答案,如搜索关键词"Marie Curie",会得到居里夫人的详细信息以及与之相关的历史人物。知识图谱的出现引起了搜索引擎行业的变革,不仅美国的微软必应,中国的百度、搜狗等搜索引擎公司也纷纷推出了自己的知识图谱。 ... [详细]
  • 本文讲述了作者通过点火测试男友的性格和承受能力,以考验婚姻问题。作者故意不安慰男友并再次点火,观察他的反应。这个行为是善意的玩人,旨在了解男友的性格和避免婚姻问题。 ... [详细]
  • 本文由编程笔记小编整理,介绍了PHP中的MySQL函数库及其常用函数,包括mysql_connect、mysql_error、mysql_select_db、mysql_query、mysql_affected_row、mysql_close等。希望对读者有一定的参考价值。 ... [详细]
author-avatar
哪来的咸鱼
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有