php alert弹窗后返回不刷新页面_PHP全栈学习笔记13

58d0ee641350635376898d43a0eaee3a.png
php与ajax技术

web2.0的到来,ajax逐渐成为主流,什么是ajax,ajax的开发模式,优点,使用技术。(ajax概述,ajax使用的技术,需要注意的 问题,在PHP应用ajax技术的应用)

什么是ajax,ajax的开发模式,优点。

ajax是由jesse james garrett创建的,是asynchronous javascript and xml,异步javascript和xml技术,ajax并不是一门新的语言或技术,它是javascript,xml,css,dom等多种技术的组合,可以实现客户端的异步请求操作,可以在不刷新页面下与服务器进行通信,从而减少了用户的等待时间。

ajax开发模式:
浏览器(客户端) http传输,http请求, web服务器 数据存储,后端处理,继承系统,服务器端。

客户端(浏览器)JavaScript调用,ajax引擎 http请求,http传输, web和xml服务器,数据存储,后端处理,继承系统(服务端)。

优点:减轻服务器的负担,可以把部分由服务器负担的工作转移到客户端上,无刷新更新页面,可以调用xml等外部数据,基于标准化的并被广泛支持的技术。

JavaScript是一种在web页面中添加动态脚本代码的解释性程序语言。

xmlhttprequest

ie浏览器把xmlhttp

var http_request = new ActiveXObject("Msxml2.XMLHTTP");
var http_request = new ActiveXObject("Microsoft.XMLHTTP");

mozailla,safari等其他浏览器

var http_request = new XMLHttpRequest();
if(window.XMLHttpRequest){
    
http_request = new XMLHttpRequest();
}else if(window.ActiveXObject){
    
 try{
    
 http_request = new ActiveXObject("Msxml2.XMLHTTP");
 }catch(e){
    
 try{
    
 http_request = new ActiveXObject("Msxml2.XMLHTTP");
}catch(e){
    
 try{
    
 http_request = new ActiveXObject("Microsoft.XMLHTTP");
}catch(e){}
}
}

XMLHttpRequest对象的常用方法:

open()方法用于设置进行异步请求目标的url

open("method", "url" [,asyncFlag [,"userName" [, "password"]]])

send()方法用于向服务器发送请求

send(content)

setRequestHeader()方法

setRequestHeader()方法为请求的http头设置值

setRequestHeader("label","value")

label用于指定http头,value用于指定http头设置值

open()方法过后才能使用setRequestHeader()方法

abort()方法
abort()方法用于停止当前异步请求

getAllResponseHeaders()方法
getAllResponseHeaders()方法用于以字符串形式完整的http头信息。

xmlhttpRequest对象常用的属性
onreadystatechange 每个状态改变时都会触发这个事件处理器,通常会调用一个JavaScript函数。

readyState 请求的状态:

0 为未初始化
1 为正在下载
2 为已加载
3 在交互中
4 为完成

responseText 服务器的响应,表示字符串

responseXML 服务器的响应,表示xml

status 返回服务器的http状态码
statusText 返回http状态码对应的文本

xml语言为可扩展的标记语言,提供了用于描述结构化数据的格式。xmlHttpRequest对象与服务器交换的数据,通常采用xml格式。

dom为文档对象模型,为xml文档的解析定义了一组接口。

在PHP中应用AJAX技术检测用户名

<script language="javascript">
var http_request = false;
function createRequest(url) {
    //初始化对象并发出XMLHttpRequest请求
    http_request = false;
    if (window.XMLHttpRequest) {                                        //Mozilla等其他浏览器
        http_request = new XMLHttpRequest();
        if (http_request.overrideMimeType) {
            http_request.overrideMimeType("text/xml");
        }
    } else if (window.ActiveXObject) {                              //IE浏览器
        try {
            http_request = new ActiveXObject("Msxml2.XMLHTTP");
        } catch (e) {
            try {
                http_request = new ActiveXObject("Microsoft.XMLHTTP");
           } catch (e) {}
        }
    }
    if (!http_request) {
        alert("不能创建XMLHTTP实例!");
        return false;
    }
    http_request.onreadystatechange = alertContents;                     //指定响应方法
    
    http_request.open("GET", url, true);                                 //发出HTTP请求
    http_request.send(null);
}
function alertContents() {                                               //处理服务器返回的信息
    if (http_request.readyState == 4) {
        if (http_request.status == 200) {
            alert(http_request.responseText);
        } else {
            alert('您请求的页面发现错误');
        }
    }
}
</script>
<script language="javascript">
function checkName() {
    var username = form1.username.value;
    if(username=="") {
        window.alert("请填写用户名!");
        form1.username.focus();
        return false;
    }
    else {
        createRequest('checkname.php?username='+username+'&nocache='+new Date().getTime());
    }
}
</script>
<?php
    header('Content-type: text/html;charset=GB2312');       //指定发送数据的编码格式为GB2312
    $link=mysql_connect("localhost","root","root");
    mysql_select_db("db_database",$link);
    $GB2312string=iconv( 'UTF-8', 'gb2312//IGNORE' , $RequestAjaxString);           //Ajax中先用encodeURIComponent对要提交的中文进行编码
    mysql_query("set names gb2312");
    $username=$_GET[username];
    $sql=mysql_query("select * from tb_user where name='".$username."'");
    $info=mysql_fetch_array($sql);
    if ($info){
        echo "很报歉!用户名[".$username."]已经被注册!";
    }else{
        echo "祝贺您!用户名[".$username."]没有被注册!";
    }
?>

类别添加

<script language="javascript">
var http_request = false;
function createRequest(url) {
    //初始化对象并发出XMLHttpRequest请求
    http_request = false;
    if (window.XMLHttpRequest) {                                        //Mozilla等其他浏览器
        http_request = new XMLHttpRequest();
        if (http_request.overrideMimeType) {
            http_request.overrideMimeType("text/xml");
        }
    } else if (window.ActiveXObject) {                              //IE浏览器
        try {
            http_request = new ActiveXObject("Msxml2.XM
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值