IT技术专栏 - 软件开发 - 网站 - IT文章 - JavaScript无刷新页面提交表单中的数据
JavaScript无刷新页面提交表单中的数据
http://www.wenhq.com/article/view_292.html 2009-04-14 18:37:11 来源:
关键词 :
本文件是为无刷新页面提交数据而编写的几个公共方法,以便在提交form中的数据更方便;
/*
本文件是为无刷新页面提交数据而编写的几个公共方法,以便在提交form中的数据更方便;
第一步:创建对象Request;
第二步:获取form表单中的数据,并组织为字符串;
第三步:发送数据库到服务器;
*/
var ajax_submit_request =null;
/*
创建一个请求对象,根据浏览器的不同;
*/
function createFormRequest()
{
  var req;
  
  if(window.XMLHttpRequest)
  {
    req = new XMLHttpRequest();
    if (req.overrideMimeType)
    {
      req.overrideMimeType('text/xml');
    }
  }
  else if (window.ActiveXObject)
  {
    try
    {
      req = new ActiveXObject("Msxml2.XMLHTTP");
    }
    catch (e)
    {
      try
      {
        req = new ActiveXObject("Microsoft.XMLHTTP");
      }
      catch (e)
      {
      }
    }
  }

  /*
  if (!req)
  {
    window.alert("不能创建XMLHttpRequest对象实例.");
    return false;
  }
  */
  return req;
}


/*
创建一个请求对象,根据浏览器的不同;
*/

function getFormElementStr(formid) {
var result =new String();
var l = new Number();
eval('l = document.' + formid + '.elements.length');
for (var i = 0; i < l; i++) {
var tempvalue = new String();
  var tempid = new String();
  var temptype = new String();
  eval('tempid= document.' + formid + '.elements[i].name;');
  eval('temptype= document.' + formid + '.elements[i].type;');
//alert(tempid);
//alert(temptype);
   if (temptype=='text'){
    eval('tempvalue= document.' + formid + '.elements[i].value;');
   }else if (temptype=='textarea'){
    eval('tempvalue= document.' + formid + '.elements[i].value;');
      }else if (temptype=='hidden'){
    eval('tempvalue= document.' + formid + '.elements[i].value;');
   }else if(temptype=='select-one'){
    eval('tempvalue=document.' + formid + '.elements[i].options[document.' + formid + '.elements[i].selectedIndex].value;');
   }else if(temptype=='radio'){
    eval('if(document.' + formid + '.elements[i].checked) tempvalue=document.' + formid + '.elements[i].value;');
   }else if(temptype=='checkbox'){
    var checkValue=new String();
    checkValue="";
    eval('if (document.' + formid + '.elements[i].checked==true) {checkValue=document.' + formid + '.elements[i].value}');
    if(checkValue==''){
    }else{
     if (tempvalue==''){
      tempvalue+=checkValue;
     }else{
      tempvalue+=','+checkValue;
     }
    }  
   }else if (temptype=='select-multiple'){
   //计算Option的个数
   //根据个数循环检测数值,并
    var optionLen=new Number();
    eval('optionLen=(document.' + formid + '.elements[i].options.length)');
    for(var j=0;j<optionLen;j++){
     var checkValue=new String();
     checkValue="";
     eval('if (document.' + formid + '.elements[i].options[j].selected) checkValue=(document.' + formid + '.elements[i].options[j].value);');
     if(checkValue==''){
     }else{
      if (tempvalue==''){
       tempvalue+=checkValue;
      }else{
       tempvalue+=','+ checkValue;
      }
     }
    }
    //循环检查数据
  }
  if (tempvalue !='')
  {
if (result !='')
{
        result += "&" + tempid + "=" + tempvalue;
}else
        result = tempid + "=" + tempvalue;
  }
}

return result;
}

/*
同步发送数据并返回服务器的返回数据;
*/
function sendFormData(url,data) {
if (ajax_submit_request ==null)
{
ajax_submit_request =createFormRequest();
}
ajax_submit_request.open("POST",url,false);
    ajax_submit_request.setRequestHeader("Content-Type", "application/x-www-form-urlencoded;charset=UTF-8");
ajax_submit_request.send(data);
    return ajax_submit_request.responseText;
}

/*
异步发送数据并返回服务器,使用回调函数处理服务器的相应;
*/
  function sendAsFormData(url,data,onreadystate) {
var ajax_submit_request1 =createFormRequest();
ajax_submit_request1.open("POST",url,true);
    ajax_submit_request1.setRequestHeader("Content-Type", "application/x-www-form-urlencoded;charset=UTF-8");
ajax_submit_request1.onreadystatechange =function(){
        if (ajax_submit_request1.readyState == 4) {  
   var restext=ajax_submit_request1.responseText;
onreadystate(restext);
}
}
ajax_submit_request1.send(data);
}

本文链接地址:http://www.wenhq.com/article/view_292.html
共有 人次浏览 收藏本页 返回上一页 责任编辑:
放松一下