我有一个包含输入元素数组的表单,如下所示。
<form method="post" action="sample.php">
<input type="text" name="field[txt][name]" />
<input type="text" name="field[txt][sex]" />
<input type="text" name="field[txt][location]" />
<br /><br />
<input type="text" name="field[num][age]" />
<input type="text" name="field[date][pod]" />
<input type="text" name="field[date][doj]" />
<br /><br />
<input type="submit" name="submit" />
</form>
php - print_r($ _ POST ['field'])在我像往常一样提交表单时给出类似于以下的输出。 如何使用jquery-post方法提交'field [] []'元素以获得相同的结果?
Array(
[txt] => Array
(
[name] => sam
[sex] => male
[location] => somewhere
)
[num] => Array
(
[age] => 20
)
[date] => Array
(
[pob] => 2001-01-01
[doj] => 2001-01-01
)
)
任何帮助都将受到高度赞赏。
答案 0 :(得分:2)
使用:
var postData = $("#formId").serializeArray();
$.post(url, postData, function(response){ //do something });
答案 1 :(得分:1)
您可以使用常规javascript对象作为data
参数,jQuery会将其序列化为url参数:
var data = {
fields: {
txt: {
name: "sam",
sex: "male",
location: "somewhere"
},
num: {
age: 20
},
date: {
pob: "2001-01-01",
doj: "2001-01-01"
}
}
};
$.post(url, data, function(answer){ ... });
答案 2 :(得分:0)
尝试jquery .Serializre()
var values = $("form").first().serialize();
此代码将获取所有值并序列化为Url Data,如下所示: “&安培;领域[TXT] [名称] = foo1&安培;领域[TXT] [性别] =男性”
然后你使用Ajax:
$.ajax({url: $("form").first().attr("action"), data: values })