PHP全栈学习笔记13

image

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技术检测用户名






类别添加





xml基础技术

了解xml,使用simpleXML解析文档的方法
遍历xml文档,修改,保存xml,创建xml文档的方法

xml语法
xml文档结构,xml声明,处理指令,注解,xml元素,xml属性,使用cdata标记,xml命令空间。

XML文档结构





XML声明



image

处理指令





xml-stylesheet:样式表单处理指令
type="text/css":设定了文档所使用的样式是css
href="111.css":设定了样式文件的地址

image

XML属性

<标签 属性名="属性值" 属性名=""…>内容
image

SimpleXML
创建SimpleXML对象
Simplexml_load_file()函数,将指定的文件解析到内存中
Simplexml_load_string()函数,将创建的字符串解析到内存当中
Simplexml_load_date()函数,将一个使用dom函数创建的domDocument对象导入到内存当中

遍历所有子元素
children()方法和foreach循环语句可以遍历所有子节点元素

遍历所有属性
SimpleXML对象中的attributes()方法










    
        PHP
    

XML;
$xml_2 = simplexml_load_string($str);
echo '
'; print_r($xml_2); /* 第三种方法 */ $dom = new domDocument(); $dom -> loadXML($str); $xml_3 = simplexml_import_dom($dom); echo '
'; print_r($xml_3); ?>

                                                                                      
                                                                                                                            
                                                                                                                         
  
        show_message();                                                                         
                break;                                                                                                     
            case "post_message":        //提交                                                                               
                $HawkXML->post_message();                                                                       
                break;                                                                                                      
            case "add_message":          //添加                                                                            
                $HawkXML->add_message($_POST['user'],$_POST['address']);                                             
                break;    
            case "delete_message":      //删除
                $HawkXML->delete_message($_GET['admin_id']);
                break;
        }                                                                                                
       ?>   
  添加数据   
";
        $this->loadXML($xmlstr);
        $this->save("message.xml");
    }
    else
        $this->load("message.xml");
}
public function add_message($user,$address){  //添加数据
    $Root = $this->documentElement;
    //获取留言消息
    $admin_id =date("Ynjhis");
    $Node_admin_id= $this->createElement("admin_id");
    $text= $this->createTextNode(iconv("GB2312","UTF-8",$admin_id));
    $Node_admin_id->appendChild($text);

    $Node_user = $this->createElement("user");
    $text  = $this->createTextNode(iconv("GB2312","UTF-8",$user));
    $Node_user->appendChild($text);

    $Node_address = $this->createElement("address");
    $text= $this->createTextNode(iconv("GB2312","UTF-8",$address));
    $Node_address->appendChild($text);

    $Node_Record = $this->createElement("record");
    $Node_Record->appendChild($Node_admin_id);
    $Node_Record->appendChild($Node_user);
    $Node_Record->appendChild($Node_address);
    //加入到根结点下
    $Root->appendChild($Node_Record);
    $this->save("message.xml");  
    echo "";
}

public function show_message(){  //读取数据
    $root=$this-documentElement;
    $xpath=new DOMXPath($this);

    $Node_Record=$this->getElementsByTagName("record");
    $Node_Record_length=$Node_Record->length;
    print"";
    print"";

    for($i=0;$i<$Node_Record->length;$i++){
        $k=0;
        foreach($Node_Record->item($i)->childNodes as $articles){
           $field[$k]=iconv("UTF-8","GB2312",$articles->textContent);
            $k++;
    }
    print"
"; print"用户名"; print""; print"留言信息
"; print""; print"
"; print"$field[1]"; print""; print"$field[2]"; print"
"; }} public function post_message(){ print ""; print ""; print ""; print "
    用户名:
    留言信息:
  查看数据    
"; } } ?> 使用XML来存储少量的数据 show_message(); break; case "post_message": //提交 $HawkXML->post_message(); break; case "add_message": //添加 $HawkXML->add_message($_POST['user'],$_POST['address']); break; } ?>
  添加数据   

结言

好了,欢迎在留言区留言,与大家分享你的经验和心得。

感谢你学习今天的内容,如果你觉得这篇文章对你有帮助的话,也欢迎把它分享给更多的朋友,感谢。

感谢!承蒙关照!您真诚的赞赏是我前进的最大动力!

image

你可能感兴趣的:(PHP全栈学习笔记13)