php的ajax框架xajax入门与试用

2016-02-19 21:48 21 1 收藏

有了下面这个php的ajax框架xajax入门与试用教程,不懂php的ajax框架xajax入门与试用的也能装懂了,赶紧get起来装逼一下吧!

【 tulaoshi.com - Web开发 】

  请在文本框输入文字php的ajax框架xajax入门与试用

  一、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.cnd8.com/

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

  ?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函数
  ?
  head
  meta http-equiv="Content-Type" content="text/html; charset=gb2312" /
  link rel="stylesheet" href="http://blogbeta.blueidea.com/css/style.css" _fcksavedurl=""http://blogbeta.blueidea.com/css/style.css"" type="text/css"
  title无标题文档/title  
  ?php $xajax-printJavascrīpt('inc/'); ? 
  scrīpt type="text/javascrīpt"
           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;
           }
  /scrīpt
  /head
  bodyform id="signupForm" action="javascrīpt:void(null);" ōnSubmit="submitSignup();" 
  div id="main"
      div id="m1"用 户 注 册/div
      div id="formDiv"
        table width="100%" border="0" cellspacing="0" cellpadding="5"
          tr
            td align="right" /td
            td /td
          /tr
          tr
            td width="31%" align="right"用户名:/td
            td width="69%"input name="usr" type="text" id="usr" /
              */td
          /tr
          tr
            td align="right"密码:/td
            tdinput name="pwd" type="password" id="pwd" /
              */td
          /tr
          tr
            td align="right"密码:/td
            tdinput name="pwd2" type="password" id="pwd2" /
              */td
          /tr
          tr
            td align="right"Email:/td
            tdinput name="email" type="text" id="email" /
              * 可用于找回密码/td
          /tr
          tr align="center"
            td colspan="2"input type="submit" name="submitButton" value="提交" class="button" /
                input type="reset" name="Submit2" value="重置" class="button" //td
          /tr
        /table
      /div
  /div
  /form
  /body
  /html

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

  3、inc/singup.php

  ?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.="请输入用户名!";   
       }
       if (trim($pwd) == "")
       {
           $errmsg.="请输入密码!";
       }
       if ($pwd != $aFormValues['pwd2'])
       {
           $errmsg.="两次输入的密码不一致!";
       }
     
       if (!CheckEmailAddr($email))
       {
           $errmsg.="邮件地址不正确!";
       }    
       $sql="select * from zl_usr where zl_usr='$usr'";
       $result=mysql_query($sql,$db);
       if($myrow=mysql_fetch_array($result)){
           $errmsg.="用户名已经存在!";
       }          
       if ($errmsg=="")
       {      
           $sForm = "注册成功br用户名:".$usr."bremail:".$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 = "注册成功br用户名:".$usr."bremail:".$email."";

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

  3、login.php 登陆文件

  ?php
        require_once("inc/xajax.inc.php");
        $xajax = new xajax("inc/login.php");
        $xajax-registerFunction("processForm");
  ?
  head
  meta http-equiv="Content-Type" content="text/html; charset=gb2312" /
  link rel="stylesheet" href="http://blogbeta.blueidea.com/css/style.css" _fcksavedurl=""http://blogbeta.blueidea.com/css/style.css"" type="text/css"
  title无标题文档/title  
  ?php $xajax-printJavascrīpt('inc/'); ? 
  scrīpt type="text/javascrīpt"
           function submitSignup()
           {
               xajax.$('submitButton').disabled=true;
               xajax.$('submitButton').value="http://blogbeta.blueidea.com/wait...";
               xajax_processForm(xajax.getFormValues("signupForm"));
               return false;
           }
  /scrīpt
  /head
  bodyform id="signupForm" action="javascrīpt:void(null);" ōnSubmit="submitSignup();" 
  div id="main"
      div id="m1"用 户 登 陆/div
      div id="formDiv"
        table width="100%" border="0" cellspacing="0" cellpadding="5"
          tr
            td align="right" /td
            td /td
          /tr
          tr
            td width="31%" align="right"用户名:/td
            td width="69%"input name="usr" type="text" id="usr" /
              */td
          /tr
          tr
            td align="right"密码:/td
            tdinput name="pwd" type="password" id="pwd" /
              */td
          /tr

(本文来源于图老师网站,更多请访问http://www.tulaoshi.com/webkaifa/)

          tr align="center"
            td colspan="2"input type="submit" name="submitButton" value="提交" class="button" /
                input type="reset" name="Submit2" value="重置" class="button" //td
          /tr
        /table
      /div
  /div
  /form
  /body
  /html

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

  ?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.="请输入用户名!";   
       }
       if (trim($pwd) == "")
       {
           $errmsg.="请输入密码!";
       }
       $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.="用户名不存在,或密码错误!";
       }          
       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();
  ?

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

(本文来源于图老师网站,更多请访问http://www.tulaoshi.com/webkaifa/)

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

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

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

来源:http://www.tulaoshi.com/n/20160219/1627214.html

延伸阅读
标签: Web开发
一.XMLHttpRequest 对象的三个重要的属性。 onreadystatechange 属性 onreadystatechange 属性存有处理服务器响应的函数。下面的代码定义一个空的函数,可同时对 onreadystatechange 属性进行设置: xmlHttp.onreadystatechange=function() {   // 我们需要在这里写一些代码   } readyState 属性 readyState 属性...
标签: Web开发
使用如上方法确实可以实现Ajax分页效果,但我总觉得不够简洁,研究了一下午,终于捣鼓出了点东西O_o 首先创建前台页面MyAjaxPager.aspx 代码如下: %@ Page Language="C#" AutoEventWireup="true" CodeBehind="MyAjaxPager.aspx.cs" Inherits="AjaxDemo.AjaxPager.MyAjaxPager.MyAjaxPager" % !D...
标签: Web开发
ajax不用多说了,就是一个异步回调的方法! 并且与服务器端的传输方式有用GET或POST等 我这里说的是当传送xml或json数据时, PHP与其他服务器端语言不同之处在于,他将请求的数据封装到了服务器变量中(可能说的不对) 这样对于使用者,可以很简单的就取得GET或POST的值 但是,当直接发送xml或json时,应该是一个数据流的形式发送到服务器!...
标签: Web开发
首先我们来了解怎么在javascript中创建这个对象: 程序代码 var xmlHttp = new XMLHttpRequest(); 这行简单的代码在 Mozilla、Firefox、Safari、Opera 以及基本上所有以任何形式或方式支持 Ajax 的非 Microsoft 浏览器中,创建了 XMLHttpRequest 对象。但是对于市场占有率达到70%的IE来说,这种方法是不行的,而不同的IE版本还有不同的创建方...
标签: Web开发
该版本在性能上有着不少的提升,同时引入一个新的元素元数据的存储系统、新的鼠标事件,兼容最新版的浏览器。同时这也是第一个基于 Sprockets 的发行版,Sprockets 是  Prototype 一个 JavaScript 的打包工具。同时文档也做了改进。 值得关注的特性有: 1. 兼容最新浏览器,包括 Chrome 和 IE 8 2. 元数据存储系统,详情请看这里。 3...

经验教程

285

收藏

65

精华推荐

PHP5试用(二)

PHP5试用(二)

〔哎呀妈呀〕

ajax框架之jqpie的使用

ajax框架之jqpie的使用

小北都市汽车

AJAX 验证框架13个

AJAX 验证框架13个

cg199402017

微博分享 QQ分享 QQ空间 手机页面 收藏网站 回到头部