background image

ajax.onreadystatechange = function() {
//如果执行是状态正常,那么就把返回的内容赋值给上面指定的层

if (ajax.readyState == 4 && ajax.status == 200) {
show.innerHTML = ajax.responseText;

}
}
//发送空

ajax.send(null);
}

那么当,当用户点击 新闻 1”这个链接的时候,在下面对应的层将显示获取的内容,而且页面没有任何刷新。

当然,我们上面省略了 show.php 这个文件,我们只是假设 show.php 文件存在,并且能够正常工作的从

数据库中把 id 为 1 的新闻提取出来。

这种方式适应于页面中任何元素,包括表单等等,其实在应用中,对表单的操作是比较多的,针对表单,更
多使用的是 POST 方式,这个下面将讲述。

3. 使用 POST 方式

其实 POST 方式跟 Get 方式是比较类似的,只是在执行 Ajax 的时候稍有不同,我们简单讲述一下。

假设有一个用户输入资料的表单,我们在无刷新的情况下把用户资料保存到数据库中,同时给用户一个成功
的提示。

//构建一个表单,表单中不需要 action、method 之类的属性,全部由 ajax 来搞定了。

<form name="user_info">

姓名:<input type="text" name="user_name" /><br />

年龄:<input type="text" name="user_age" /><br />

性别:<input type="text" name="user_sex" /><br />

<input type="button" value="提交表单" onClick="saveUserInfo()">

</form>
//构建一个接受返回信息的层:

<div id="msg"></div>

我们看到上面的 form 表单里没有需要提交目标等信息,并且提交按钮的类型也只是 button,那么所有操

作都是靠 onClick 事件中的 saveUserInfo()函数来执行了。我们描述一下这个函数:

function saveUserInfo()
{
//获取接受返回信息层

var msg = document.getElementById("msg");
//获取表单对象和用户信息值
var f = document.user_info;

var userName = f.user_name.value;
var userAge = f.user_age.value;

var userSex = f.user_sex.value;
//接收表单的 URL 地址
var url = "/save_info.php";
//需要 POST 的值,把每个变量都通过&来联接

var postStr = "user_name="+ userName +"&user_age="+ userAge +"&user_sex="+ 
userSex;
//实例化 Ajax

var ajax = InitAjax();
//通过 Post 方式打开连接
ajax.open("POST", url, true);
//定义传输的文件 HTTP 头信息

ajax.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
//发送 POST 数据
ajax.send(postStr);
//获取执行状态