发一下我在给公司写项目进度管理系统时使用的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 。

, ,

引用地址:http://www.liuyuanjun.com/internet/ajax-post-function/

要说点啥就在这吧