BY Lane ON May 25, 2008 IN Run in the internet
发一下我在给公司写项目进度管理系统时使用的AJAX POST函数,支持checkbox类型radio类型和多选select,其中select发送的值是用“|”将数组各项隔开的值,在服务器端需要重新分解为数组,另外使用多选seclet时要注意把name写为xxx的形式,不要写为xxx[]的形式。
在网络编程方面我还只是一个初见门槛的婴孩,代码难免有不足的地方,如果发现有什么可以改进优化的地方,还请大家给我留言,共同修改。
在此先感谢下我的师傅,沙滩凉鞋,在我学习的时候,一直给我很大的帮助。
代码:
| 1 | | 2 | | 3 | | 4 | | 5 | | 6 | | 7 | | 8 | | 9 | | 10 | | 11 | | 12 | | 13 | | 14 | | 15 | | 16 | | 17 | | 18 | | 19 | | 20 | | 21 | | 22 | | 23 | | 24 | | 25 | | 26 | | 27 | | 28 | | 29 | | 30 | | 31 | | 32 | | 33 | | 34 | | 35 | | 36 | | 37 | | 38 | | 39 | | 40 | | 41 | | 42 |
| | //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 。