我希望在某处没有回答:)
我正在使用以下表格输入字段,以便客户更新其购物篮中的商品数量:
<input type="text" name="item_qty[<?php echo $product['product_id']; ?>]" value="<?php echo $product['product_qty']; ?>">
因此,购物篮中的每件商品都有一个输入字段,并且有一个提交按钮可以一次性更新所有产品数量。
我的问题是我无法弄清楚如何在jquery中创建所需的数组,以便使用name元素中的数组通过ajax发送(如果可能,我希望保持这样,因为我想确保表单可以工作如果有任何理由无法初始化jquery,则作为正常提交到PHP文件。)
我原以为这个名字应该是篮子阵列中的关键但不确定。任何人都可以建议最好的方法来做到这一点,如果它是保持输入字段现在,我如何得到所需的数据在jquery中创建一个数组。
答案 0 :(得分:0)
所以,如果我理解你的话,你有一些类似的输出吗?
<input type="text" name="item_qty[0]" value="4">
<input type="text" name="item_qty[1]" value="1">
<input type="text" name="item_qty[2]" value="3">
<input type="text" name="item_qty[3]" value="7">
你想要一个类似的结果:
[{item_qty[0], 4}, {item_qty[1], 1}, ...]
如果这是正确的,我会在这个小提琴中抛出一些东西:http://jsfiddle.net/N6eBZ/
编辑:对于关联数组,您需要创建一个JS对象,请看这个小提琴:http://jsfiddle.net/KyleMuir/N6eBZ/1/
希望这有帮助
答案 1 :(得分:0)
var obj = {};
`$('input')。each(function(index,value){ obj [this.name] = this.value;
});`
答案 2 :(得分:0)
我已经分享了接受的答案并重新编写它以使用$ .map(),这可能比$ .each()更合适。 $ .map()适用于此类应用程序:根据DOM查询的结果构建数组:
var results = $('[name^=item]').map(function() {
var $this = $(this),
jsObject = {};
jsObject[$this.attr('name')] = $this.val();
return jsObject;
}).get();