AJAX 请求实例

来源:互联网 发布:药鼎进阶数据 编辑:程序博客网 时间:2024/05/16 11:18

======================================================
注:本文源代码点此下载
======================================================

ajax suggest实例

在下面的 ajax 例子中,我们会演示当用户向一个标准的 html 表单中输入数据时网页如何与 web 服务器进行通信。

在下面的文本框中输入名字:first name:

suggestions:no suggestion

例子解释 - html表单

表单的 html 代码:

first name:id="txt1" onkeyup="showhint(this.value)" />

suggestions: id="txthint">

正如您看到的,这是一个简单的带有名为 "txt1" 输入域的 html 表单。输入域的事件属性定义了一个由 onkeyup 事件触发的函数。

表单下面的段落包含了一个名为 "txthint" 的 span,这个 span 充当了由 web 服务器所取回的数据的位置占位符。

当用户输入数据时,名为 "showhint()" 的函数就会被执行。函数的执行是由 "onkeyup" 事件触发的。另外需要说明的是,当用户在文本域中输入数据时把手指从键盘按键上移开时,函数 showhint 就会被调用。

例子解释 - showhint() 函数

showhint() 函数是一个位于 html 页面 head 部分的很简单的 javascript 函数。

此函数包含以下代码:

function showhint(str)

{

if (str.length==0)

{

document.getelementbyid("txthint").innerhtml="";

return;

}

xmlhttp=getxmlhttpobject()

if (xmlhttp==null)

{

alert ("您的浏览器不支持ajax!");

return;

}

var url="gethint.asp";

url=url+"?q="+str;

url=url+"&sid="+math.random();

xmlhttp.onreadystatechange=statechanged;

xmlhttp.open("get",url,true);

xmlhttp.send(null);

}

每当有字符输入文本框时,此函数就会执行。

假如文本域中存在某些输入,函数就会执行:

定义回传数据的服务器的 url(文件名)

使用文本框的内容向 url 添加参数(q)

添加一个随机的数字,以防止服务器使用某个已缓存的文件

创建一个 xmlhttp 对象,并告知此对象当某个改变被触发时执行名为 statechanged 的函数

向服务器发送一个 http 请求

如果输入域为空,此函数仅仅会清空 txthint 占位符的内容

例子解释 - getxmlhttpobject() 函数

上面的例子可调用名为 getxmlhttpobject() 的函数。

此函数的作用是解决为不同浏览器创建不同的 xmlhttp 对象的问题。

这是此函数的代码:

function getxmlhttpobject()

{

var xmlhttp=null;

try

{

// firefox, opera 8.0+, safari

xmlhttp=new xmlhttprequest();

}

catch (e)

{

// internet explorer

try

{

xmlhttp=new activexobject("msxml2.xmlhttp");

}

catch (e)

{

xmlhttp=new activexobject("microsoft.xmlhttp");

}

}

return xmlhttp;

}

例子解释 - statechanged() 函数

statechanged() 函数包含下面的代码:

function statechanged()

{

if (xmlhttp.readystate==4)

{

document.getelementbyid("txthint").innerhtml=xmlhttp.responsetext;

}

}

每当 xmlhttp 对象的状态发生改变时,statechanged() 函数就会执行。

当状态变更为 4(“完成”)时,txthint 占位符的内容就被响应文本来填充。


======================================================
在最后,我邀请大家参加新浪APP,就是新浪免费送大家的一个空间,支持PHP+MySql,免费二级域名,免费域名绑定 这个是我邀请的地址,您通过这个链接注册即为我的好友,并获赠云豆500个,价值5元哦!短网址是http://t.cn/SXOiLh我创建的小站每天访客已经达到2000+了,每天挂广告赚50+元哦,呵呵,饭钱不愁了,\(^o^)/
原创粉丝点击