2014-02-10 51 views
0

通常我会使用jQuery来做到这一点,但是为了简化这个长篇故事,我不能。使用AJAX(但没有jQuery)提交表单的多个值 - XMLHttpRequest

我已经成功提交通过AJAX一种形式,只有一个窗体的元素,像这样:

<div id="response"></div> 

<form onsubmit="submitStuff(this.datatosend.value);this.reset();return false;"> 
    <input id="datatosend" type="text" /> 
    <input type="submit" /> 
</form> 

<script> 
    function submitStuff(e) { 
     if (e == "") { 
      document.getElementById("response").innerHTML = ""; 
      return 
     } 
     if (window.XMLHttpRequest) { 
      xmlhttp = new XMLHttpRequest 
     } else { 
      xmlhttp = new ActiveXObject("Microsoft.XMLHTTP") 
     } 
     xmlhttp.onreadystatechange = function() { 
      if (xmlhttp.readyState == 4 && xmlhttp.status == 200) { 
       document.getElementById("response").innerHTML = xmlhttp.responseText 
      } 
     }; 
     xmlhttp.open("GET", "sumbitData.php?data=" + e, true); 
     xmlhttp.send() 
    } 
</script> 

现在说我有这种形式:

<form onsubmit="????????????????????;this.reset();return false;"> 
    <input id="datatosend1" type="text" /> 
    <input id="datatosend2" type="text" /> 
    <input type="submit" /> 
</form> 

我怎样做同样,提交这两个值?

我对Javascript有点新,特别是'纯'Javascript,请耐心等待!

回答

1

建立字符串

var data1 = encodeURIComponent(document.getElementById("datatosend1").value); 
var data2 = encodeURIComponent(document.getElementById("datatosend2").value); 
var url = "sumbitData.php?data1=" + data1 + "&data2=" + data2; 
+0

辉煌!谢谢!我正在慢慢地出现! :) –

0

阅读形式值并串附加到网址:

var child=document.getElementById(form_id).getElementsByTagName('input'); 
    var data=new Array(); 
    for(var i=0;i<child.length;i++){ 
     data.push(child[i].id + '='+ encodeURIComponent(child[i].value)); 
     } 
    data='?' + data.join('&');