php与ajax技术

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

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."]没有被注册!";

}

?>

类别添加

$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");

$sort=$_GET[txt_sort];

mysql_query("insert into tb_sort(sort) values('$sort')");

header('Content-type: text/html;charset=GB2312'); //指定发送数据的编码格式为GB2312

?>

xml基础技术

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

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

XML文档结构

XML声明

处理指令

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

XML属性

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

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

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

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

header('Content-Type:text/html;charset=utf-8');

?>

/* 第一种方法 */

$xml_1 = simplexml_load_file("5.xml");

print_r($xml_1);

/* 第二种方法 */

$str = <<

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);

?>

header('Content-Type:text/html;charset=utf-8');

?>

$HawkXML = new Message_XML;

$Action ="";

if(isset($_GET['Action']))

$Action = $_GET['Action'];

switch($Action){

case "show_message": //查看

$HawkXML->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;

}

?>

  添加数据   

//Message_XML类,继承PHP5的DomDocument类

class Message_XML extends DomDocument{

//属性

private $Root;

//方法

//构造函数

public function __construct() {

parent:: __construct();

//创建或读取存储留言信息的XML文档message.xml

if (!file_exists("message.xml")){

$xmlstr = "";

$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来存储少量的数据

$HawkXML = new Message_XML;

$Action ="";

if(isset($_GET['Action']))

$Action = $_GET['Action'];

switch($Action){

case "show_message": //查看

$HawkXML->show_message();

break;

case "post_message": //提交

$HawkXML->post_message();

break;

case "add_message": //添加

$HawkXML->add_message($_POST['user'],$_POST['address']);

break; }

?>

  添加数据   

相关推荐

电话面试的六大法则!
sport365

电话面试的六大法则!

📅 10-17 👁️ 9957
冒险岛手游哪个区人最多?冒险岛哪里怪物最多?
365不给提款流水数据异常

冒险岛手游哪个区人最多?冒险岛哪里怪物最多?

📅 08-01 👁️ 3497
学生上课睡觉班主任怎么处理_“佛系教师”语录:小孩是别人的,成绩是校长的,饭碗是自己的...