[英]Sending multidimensional checkbox array via ajax in jQuery
我正在嘗試使用復選框將多維數組值發布到服務器端。 但不幸的是,無法弄清楚使用復選框的方法。
我想做的是使用 ajax 發布 ID (NAME, VALUE),但只發送一個數組。
<input type="hidden" id="addon_id" value="8"> //value is dynamic
<input type="checkbox" name='addon[]' value="1.99" title="Item 1"> //value and title are dynamic
<input type="checkbox" name='addon[]' value="5.99" title="Item 2">
<input type="checkbox" name='addon[]' value="3.99" title="Item 3">
jQuery
var addon = [];
$.each($("input[name='addon[]']"), function() {
if ($(this).is(":checked")) {
addon.push($(this).val());
}
});
$.ajax({
url: '<?php echo site_url('cart/add_to_cart'); ?>',
type: 'POST',
data: {
addon_id: addon_id,
addon: addon
},
dataType: "JSON",
success: function(response) {
//response
}
});
當前發送格式
[addon] => Array
(
[0] => 1.99
[1] => 5.00
[2] => 3.89
)
嘗試發送的數組格式
Array
(
[8] => Array(
[0] => Array(
[name] => ITEM 1
[price] => 1.99
)
[1] => Array(
[name] => ITEM 2
[price] => 5.99
)
[2] => Array(
[name] => ITEM 3
[price] => 3.99
)
)
)
JSON
"8":{
"0":{
"name":"ITEM 1",
"price":"1.99"
},
"1":{
"name":"ITEM 2",
"price":"5.99"
},
"2":{
"name":"ITEM 3",
"price":"3.99"
}
}
對於循環,您必須將兩個值都包含在數組中:
$.each($("input[name='addon[]']"), function() {
if ($(this).is(":checked")) {
addon.push({"name":$(this).attr("title"), "price":$(this).val()});
}
});
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.