从表单中获取数据并构建多维数组
Fetch data from form and build a multidimensional array of it
我有一个简单的html表单,其结构如下:
<form name="test" action="">
<tr class="selectable" data-selected=false>
<input type="hidden" name="product[gate][id] value=<? echo $pid?>"/>
<input type="text" name="product[gate][amount]"/>
</tr>
</form>
我需要收集每个"数据选择"为true的tr行。
这样,我就可以得到某种数组,然后通过jQueryPOST请求将其发送到服务器。
类似这样的东西:
products => Array(
[0] => Array(
id => 1134,
amount => 2
),
[2] => Array(
id => 1134,
amount => 3
)
)
我不知道如何用js构建多维数组,我也不熟悉js对象或JSON。最简单的方法是什么?
试试这个:
var $trs = $("tr").filter(function() {
return $(this).data("selected");
});
var products = [];
$.each($trs, function(i, $tr) {
products.push({
"id": $('input[type="hidden"]', $tr).val(),
"amount": $('input[type="text"]', $tr).val()
});
})
小提琴示例
products
变量的格式应该可以在AJAX调用中使用。您可能希望在工作代码中使用比input[attr]
(例如一个类)更好的选择器。
我假设表单标记中有必要的数据。如果你不想发布任何数据,那么它不应该在<form>
中。
$('form').submit(function() {
alert($(this).serialize());
return false;
});
更多信息:http://api.jquery.com/serialize/
相关文章:
- 如何在Javascript中从select标记的一系列选项中构建二维数组
- 构建HTML选择字段并使用JavaScript数组选择选项
- Javascript-在循环中构建数组
- 如何使用相同/重复的键构建关联数组
- Javascript-如何快速构建不同正整数数组的二进制表示
- 使用数组参数构建URL
- 如何迭代对象/数组中的项,并构建嵌套的JSON
- 构建数组侦听器
- 如何在我的setAttribute函数中构建数组中的子函数
- 尝试使用“for”循环来构建数组
- 如何使用jquery构建数组并创建输入字段
- 使用数组(javascript)构建数组
- 将构建数组的PHP代码转换为JS,现在的highcharts'不起作用——我做错了什么
- 在javascript中构建数组
- 按收入对象的顺序构建数组
- 如何构建数组("键":值)在js与循环json ajax
- 为ajax构建数组
- 通过ID参数参照另一个对象构建数组
- 为什么在JS中构建数组后调用函数时,我的数组显示为空
- 如何使用 JavaScript 构建数组数组