ajax复习
以我以前写的一个练习AJAX的会员注册页面为例。
下面这些主要是在输入用户名,光标离开输入框就进行判断该用户名是否合法的ajax方法。
(1)Xmlhttprequest AJAX之核心
function S_Xmlhttprequest(){
if(window.ActiveXObject) //IE
xmlhttp = new ActiveXObject('Microsoft.XMLHTTP');
else if(window.XmlHTTPRequest) //非IE
xmlhttp = XmlHTTPRequest();
}
(2)AJAX函数,也就是在HTML中onblur=ajax()的函数
function ajax(){
/*
if(form1.textfield.value == ''){
document.getElementById('div1').innerHTML = "请输入用户名";
return false;
}
*/
S_Xmlhttprequest(); //调用Xmlhttprequest
var f = document.form1.textfield.value;
xmlhttp.onreadystatechange = show; //onreadyStateChange事件可指定一个事件处理函数来处理XMLHttpRequest对象的执行结果
xmlhttp.open('GET','for.php?id='+f,true);
xmlhttp.send(null);
}
(3)ajax()调用的show()方法,就是对readyState各种不同状态采用不同行为的方法
function show(){
if(xmlhttp.readyState == 1)
document.getElementById('div1').innerHTML = "<img src="loading.gif" mce_src="loading.gif">";
else if(xmlhttp.readyState == 4){
var result = xmlhttp.responseText;
document.getElementById('div1').innerHTML = result;
}
}
readyState的4种状态:
0 - (未初始化)还没有调用send()方法
1 - (载入)已调用send()方法,正在发送请求
2 - (载入完成)send()方法执行完成,已经接收到全部响应内容
3 - (交互)正在解析响应内容
4 - (完成)响应内容解析完成,可以在客户端调用了
responseText()方法在我看来,应该是返回PHP文件输出的内容。
最后附上那个for.php的内容:
<?
@header("content-Type: text/html; charset=gb2312");
include("MyDb.php");
$db = new MyDb($DB_LOCATION,$DB_USER,$DB_PWD);
$db->select_db('student');
if($user = $_GET['id']){
if( strlen($user)<6 || strlen($user)>12){
echo "<img src="error.gif" mce_src="error.gif"/><font color=red size=2>长度不符合</font>";
exit();
}
$zz = "^[_a-zA-Z0-9]+([_]?[a-zA-Z0-9]+)$";
if(!ereg($zz,$user)){
echo "
相关文档:
最近网上提的很多的一个新概念就是 AJAX 了, 那么, AJAX 是什么呢? 以下内容引用网上资料:
AJAX全称为“Asynchronous JavaScript and XML”(异步JavaScript和XML),是指一种创建交互式网页应用的网页开发技术。它有机地包含了以下几种技术:
Ajax(Asynchronous JavaScript + XML)的定义
基于 web标准(sta ......
/***************************by
garcon1986********************************/
Index.php:
<script type="text/javascript" src="ajax.js" ></script>
<a href="#" onclick="funphp('S')" >S</a>
<a href="for.php?url=E" >E</ ......
jquery中用ajax(貌似编码默认为utf-8)如果有中文的话 会出现乱码 下面的解决办法之一:
以下是js中的代码
classname=encodeURI($('#classname').val());
classdescription=encodeURI($('#classdescription').val());
actionArr={classname:classname,classdescription:classdescription};
$.post("product_class ......
function selectTradezone(){
var copyTradezone = document.forms[0].copyTradezone;
new BaseTool().ajax("getTradezoneByCity",callback,[document.forms[0].city.value,document.forms[0].brand.value]);
function callba ......