使用javascript获取表单数据,然后使用ajax将其提交到php文件

使用javascript获取表单数据,然后使用ajax将其提交到php文件,javascript,ajax,jquery,Javascript,Ajax,Jquery,我在解决如何通过ajax从表单获取数据并发布时遇到了一些问题。我有下面的代码,但它似乎没有发送来自复选框和单选按钮等元素的数据。相反,它正在发送所有字段。即如果有一组单选按钮,它将发送所有可能性,而不仅仅是选中的可能性。表单可以由任何类型的元素组成,并且其中包含大量元素,因此我需要以我现在的方式进行迭代。这一部分似乎很有效,但我似乎无法让javascript获取所选数据。我是否需要手动检查每个元素的类型,然后检查是否已检查等 myString = ""; my_form_id = "1"; my

我在解决如何通过ajax从表单获取数据并发布时遇到了一些问题。我有下面的代码,但它似乎没有发送来自复选框和单选按钮等元素的数据。相反,它正在发送所有字段。即如果有一组单选按钮,它将发送所有可能性,而不仅仅是选中的可能性。表单可以由任何类型的元素组成,并且其中包含大量元素,因此我需要以我现在的方式进行迭代。这一部分似乎很有效,但我似乎无法让javascript获取所选数据。我是否需要手动检查每个元素的类型,然后检查是否已检查等

myString = "";
my_form_id = "1";
my_url = "phpscript.php";
elem = document.getElementById("form_" + my_form_id).elements;
for(var i = 0; i < elem.length; i++)
{
     if (i>0) { myString += "&"; }
     myString += elem[i].name + "=" + elem[i].value;
}  
$.ajax({
type: "POST",
url: my_url,
data: myString,
success: function(data) {
// process the post data
}
});
myString=”“;
我的表格\u id=“1”;
my_url=“phpscript.php”;
elem=document.getElementById(“form_u”+my_form_id).elements;
对于(变量i=0;i0){myString+=“&”;}
myString+=elem[i]。名称+“=”+elem[i]。值;
}  
$.ajax({
类型:“POST”,
url:my_url,
数据:myString,
成功:功能(数据){
//处理post数据
}
});

`

因为您使用的是jQuery,所以您可以大大简化这一切:

var my_form_id = "1";
var my_url = "phpscript.php";
var form = $("#form_" + my_form_id);

$.ajax({
    type: "POST",
    url: my_url,
    data: form.serialize(),
    success: function(data) {
        // process the post data
    }
});
jQuery的方法为您完成了所有工作。但是如果你想手工操作,那么是的,你必须检查每个字段