码迷,mamicode.com
首页 > Web开发 > 详细

ajax类

时间:2020-03-31 14:18:38      阅读:82      评论:0      收藏:0      [点我收藏+]

标签:length   ons   send   mysql   字符   sub   inf   roc   div   

//recvType 有三个值HTML、XML和JSON , 默认为HTML,传值时不区分大小写
//bool 是一个boolean类型的值,true表示异步传输方式,false表示同步传输方式,默认为true
function Ajax(recvType, bool) {
    var aj = new Object();
    aj.targetUrl = ‘‘;    //请求的地址 可以是PHP也可以XML文件
    aj.sendString = ‘‘;   //请求服务器传递的字符串  ? & 格式 url 

    if(typeof(bool)=="undefined")
        aj.async=true;
    else
        aj.async=bool;

    aj.recvType=recvType ? recvType.toUpperCase() : ‘HTML‘;//HTML XML JSON
    aj.resultHandle = null;
    aj.ff;
    aj.createXMLHttpRequest = function() {
        var request = false;
        if(window.XMLHttpRequest) {
            aj.ff=true;
            request = new XMLHttpRequest();
            if(request.overrideMimeType) {
                request.overrideMimeType(‘text/xml‘);
            }
        } else if(window.ActiveXObject) {
            aj.ff=false;
            var versions = [‘Microsoft.XMLHTTP‘, ‘MSXML.XMLHTTP‘, ‘Microsoft.XMLHTTP‘, ‘Msxml2.XMLHTTP.7.0‘, ‘Msxml2.XMLHTTP.6.0‘, ‘Msxml2.XMLHTTP.5.0‘, ‘Msxml2.XMLHTTP.4.0‘, ‘MSXML2.XMLHTTP.3.0‘, ‘MSXML2.XMLHTTP‘];
            for(var i=0; i<versions.length; i++) {
                try {
                    request = new ActiveXObject(versions[i]);
                    if(request) {
                        return request;
                    }
                } catch(e) {
                    request=false;
                }
            }
        }
        return request;
    }

    aj.XMLHttpRequest = aj.createXMLHttpRequest();

    aj.processHandle = function() {
        if(aj.XMLHttpRequest.readyState == 4) {
            aj.ff=false; //如果是IE7以上则不再执行一次调用
            if(aj.XMLHttpRequest.status == 200) {
                if(aj.recvType == ‘HTML‘) {
                    aj.resultHandle(aj.XMLHttpRequest.responseText);
                }else if(aj.recvType == ‘JSON‘){ 
                    aj.resultHandle(eval(‘(‘+aj.XMLHttpRequest.responseText+‘)‘));
                }else if(aj.recvType == ‘XML‘) {
                    aj.resultHandle(aj.XMLHttpRequest.responseXML);
                }
            }
        }
    }

    aj.get = function(targetUrl, resultHandle) {
        aj.targetUrl = targetUrl;
        if(resultHandle!=null){
            aj.XMLHttpRequest.onreadystatechange = aj.processHandle;
            aj.resultHandle = resultHandle;
        }
        if(window.XMLHttpRequest) {
            aj.XMLHttpRequest.open(‘GET‘, aj.targetUrl, aj.async);
            aj.XMLHttpRequest.send(null);
            
        } else {
                aj.XMLHttpRequest.open("GET", targetUrl, aj.async);
                aj.XMLHttpRequest.send();
        }
        if(!aj.async && aj.ff)
            aj.processHandle();
    }

    aj.post = function(targetUrl, sendString, resultHandle) {
        aj.targetUrl = targetUrl;

        if(typeof(sendString)=="object"){
            var str="";
            for(var pro in sendString){
                str+=pro+"="+sendString[pro]+"&";
            }
            
            aj.sendString=str.substr(0, str.length-1);
        }else{
            aj.sendString = sendString;
        }

    
        
        if(resultHandle!=null){
            aj.XMLHttpRequest.onreadystatechange = aj.processHandle;
            aj.resultHandle = resultHandle;
        }
        aj.XMLHttpRequest.open(‘POST‘, targetUrl, aj.async);
        aj.XMLHttpRequest.setRequestHeader(‘Content-Type‘, ‘application/x-www-form-urlencoded‘);
        aj.XMLHttpRequest.send(aj.sendString); 
        if(!aj.async && aj.ff)
            aj.processHandle();
    }
    return aj;
}

使用方法:

<!DOCTYPE html>
<html>
    <head>
        <meta charset="UTF-8">
        <title></title>
        <script src="ajax.js" type="text/javascript" charset="utf-8"></script>
    </head>
    
    <body>
        <form action="reg.php" method="post">
            username:<input onblur="show(this.value)" type="text" name="username"/><span id="userInfo"></span><br />
            password:<input type="password" name="password"/><span id="username"></span><br />
            <input type="submit" value="submit"/>
        </form>
    </body>
    <script type="text/javascript">
        function show(username){
            $aj = new Ajax();
            var userInfo  = document.getElementById(userInfo);
            $aj.post(server.php,{username:username},function(data){
                userInfo.innerHTML = data;
            })
        }
    </script>
</html>
<?php

$mysqli = new mysqli(‘localhost‘,‘root‘,‘root‘,‘cms‘);
$result = $mysqli->query("select * from cms_manage where admin_user = ‘{$_POST["username"]}‘");
if($result->num_rows > 0){
    echo $_POST[‘username‘].‘已存在‘;
}else{
    echo $_POST[‘username‘].‘可以使用‘;
}

 

ajax类

标签:length   ons   send   mysql   字符   sub   inf   roc   div   

原文地址:https://www.cnblogs.com/feelyourbreath/p/12604670.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!