zoukankan      html  css  js  c++  java
  • ajax post(copy part)

    srcpage

    var q=new XMLHttpRequest();
    var data='usr=weidiao&pwd=haha';
    data=encodeURI(data);
    var url="xxxxxx";
    q.open("post",url);
    q.setRequestHeader('Content-type', 'application/x-www-form-urlencoded');
    q.onreadystatechange=function(){
    
    }
    q.send(data);

    一般来说form中存放数据的控件主要是<input>,而这个<input>type很多,如 ‘submit’,‘hidden’, ‘password’, ‘text’,‘checkbox’, ‘radio’等。因此第一步我们要做的就是先写一个方法,将将form中各种类型的<input>将数据值给抠出来。具体见如下代码:

    1. //获取指定form中的所有的<input>对象  
    2. function getElements(formId) {  
    3.     var form = document.getElementById(id);  
    4.     var elements = new Array();  
    5.     var tagElements = form.getElementsByTagName('input');  
    6.     for (var j = 0; j < tagElements.length; j++)  
    7.         elements.push(tagElements[j]);  
    8.     return elements;  
    9. }  

     

    接着我们需要获取每个input对象的name-value对,代码如下:

    1. function inputSelector(element) {  
    2.   if (element.checked)  
    3.      return [element.name, element.value];  
    4. }  
    5.     
    6. function input(element) {  
    7.     switch (element.type.toLowerCase()) {  
    8.       case 'submit':  
    9.       case 'hidden':  
    10.       case 'password':  
    11.       case 'text':  
    12.         return [element.name, element.value];  
    13.       case 'checkbox':  
    14.       case 'radio':  
    15.         return inputSelector(element);  
    16.     }  
    17.     return false;  
    18. }  

    接着我们就可以将所有这些input对象中的name-value对以图1-5中POSTDATA那样的格式组织起来。代码如下:

    1. function serializeElement(element) {  
    2.     var method = element.tagName.toLowerCase();  
    3.     var parameter = input(element);  
    4.   
    5.     if (parameter) {  
    6.       var key = encodeURIComponent(parameter[0]);  
    7.       if (key.length == 0) return;  
    8.   
    9.       if (parameter[1].constructor != Array)  
    10.         parameter[1] = [parameter[1]];  
    11.         
    12.       var values = parameter[1];  
    13.       var results = [];  
    14.       for (var i=0; i<values.length; i++) {  
    15.         results.push(key + '=' + encodeURIComponent(values[i]));  
    16.       }  
    17.       return results.join('&');  
    18.     }  
    19.  }  
    20.     
    21. function serializeForm(formId) {  
    22.     var elements = getElements(formId);  
    23.     var queryComponents = new Array();  
    24.   
    25.     for (var i = 0; i < elements.length; i++) {  
    26.       var queryComponent = serializeElement(elements[i]);  
    27.       if (queryComponent)  
    28.         queryComponents.push(queryComponent);  
    29.     }  
    30.   
    31.     return queryComponents.join('&');  
  • 相关阅读:
    Java实现 LeetCode 27 移除元素
    Java实现 LeetCode 26 删除排序数组中的重复项
    Java实现 LeetCode 26 删除排序数组中的重复项
    Java实现 LeetCode 26 删除排序数组中的重复项
    Java实现 LeetCode 25 K个一组翻转链表
    Java实现 LeetCode 25 K个一组翻转链表
    Java实现 LeetCode 25 K个一组翻转链表
    Java实现 LeetCode 24 两两交换链表中的节点
    Java实现 LeetCode 24 两两交换链表中的节点
    Java实现 LeetCode 24 两两交换链表中的节点
  • 原文地址:https://www.cnblogs.com/weiyinfu/p/5018458.html
Copyright © 2011-2022 走看看