我使用的AJAX POST函数
Posted on 星期天, 五月 25th, 2008 at 22:45发一下我在给公司写项目进度管理系统时使用的AJAX POST函数,支持checkbox类型radio类型和多选select,其中select发送的值是用“|”将数组各项隔开的值,在服务器端需要重新分解为数组,另外使用多选seclet时要注意把name写为xxx的形式,不要写为xxx[]的形式。
在网络编程方面我还只是一个初见门槛的婴孩,代码难免有不足的地方,如果发现有什么可以改进优化的地方,还请大家给我留言,共同修改。
在此先感谢下我的师傅,沙滩凉鞋,在我学习的时候,一直给我很大的帮助。
代码:
//AJAX POST By www.liuyuanjun.com
function submitForm(f,i){ //f为提交的表单名,i为将返回值写入的位置ID
if(window.XMLHttpRequest){
var xmlReq = new XMLHttpRequest();
} else if(window.ActiveXObject) {
var xmlReq = new ActiveXObject('Microsoft.XMLHTTP');
}
var formData = '', elem = '', value = '';
for(var s=0; s<f.elements.length; s++){
elem = f.elements[s];
if(formData != ''){
formData += '&';
}
value = elem.value;
name = elem.name;
if(elem.type == "checkbox"){
value = (elem.checked == true) ? elem.value :"";
}
if(elem.type == "radio"){
name = (elem.checked == true) ? elem.name :"";;
}
if(elem.type == "select-multiple"){
var o = elem.getElementsByTagName("option");
value = "";
for(ii=0;ii<o.length;ii++){
if(o[ii].selected == true){
value += o[ii].value + "|";
}
}
}
formData += name+"="+value;
}
xmlReq.onreadystatechange = function(){
if(xmlReq.readyState == 4){
document.getElementById(i).innerHTML = xmlReq.responseText;
}
}
xmlReq.open(f.method, f.action, true);
xmlReq.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
xmlReq.send(formData);
return false;
}
转载请注明来自 www.liuyuanjun.com 。
Leave a reply