<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <Meta http-equiv="Content-Type" content="text/html; charset=gb2312" /> <title>爱乐ajax例子</title> </head> <script language="javascript"> //这里是整个处理表单元素加载到变量的模块开始 //获取指定form中的所有的<input>对象 function getElements(formId) { var form = document.getElementById(formId); var elements = new Array(); var tagElements = form.getElementsByTagName('input'); for (var j = 0; j < tagElements.length; j++) { elements.push(tagElements[j]); } return elements; } //获取单个input中的【name,value】数组 function inputSelector(element) { if (element.checked) return [element.name,element.value]; }
function input(element) { switch (element.type.toLowerCase()) { case 'submit': case 'hidden': case 'password': case 'text': return [element.name,element.value]; case 'checkBox': case 'radio': return inputSelector(element); } return false; }
//组合URL function serializeElement(element) { var method = element.tagName.toLowerCase(); var parameter = input(element);
if (parameter) { var key = encodeURIComponent(parameter[0]); if (key.length == 0) return;
if (parameter[1].constructor != Array) parameter[1] = [parameter[1]];
var values = parameter[1]; var results = []; for (var i=0; i<values.length; i++) { results.push(key + '=' + encodeURIComponent(values[i])); } return results.join('&'); } }
//调用方法 function serializeform(formId) { var elements = getElements(formId); var queryComponents = new Array(); for (var i = 0; i < elements.length; i++) { var queryComponent = serializeElement(elements[i]); if (queryComponent) queryComponents.push(queryComponent); } return queryComponents.join('&'); } //这里是整个处理表单元素加载到变量的模块的结束(如果是研究的话 先不要管上面直接看下面的学习就行了)
function ajax_get(div_al,url,form_name)/*通用函数在这里*/ { var div_al=div_al; //接收表单的URL地址 var url = url; //获取接受返回信息层 var form_name = form_name; var params = serializeform(form_name); //需要get的值,把每个变量都通过&来联接 var url =url+"?"+params; if(window.ActiveXObject){//IE的低版本系类 XHR=new ActiveXObject('Microsoft.XMLHTTP');//之前IE垄断了整个浏览器市场,没遵循W3C标准,所以就有了这句代码。。。但IE6之后开始有所改观 } else if(window.XMLHttpRequest) {//非IE系列的浏览器,但包括IE7 IE8 XHR=new XMLHttpRequest(); } XHR.open("GET",true);//true:表示异步传输,而不等send()方法返回结果,这正是ajax的核心思想 XHR.onreadystatechange=function(){byhongfei(div_al/*这里可以传参数*/)}; XHR.send(null); } function byhongfei(div_al/*这里接受参数*/)//这个在调用方法传参可不容易 呵呵 我搞了好久才实现了 { var div_al=div_al; if(XHR.readyState == 4) { if(XHR.status == 200) {