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);
//获取执行状态