我正在尝试通过ajax返回所有选定复选框的值。我无法弄清楚如何将值作为参数传递。
HTML复选框
<li><input class="customer_sales_value" id="customer_sales_1" type="checkbox" value="1"><label for="customer_sales_1">James</label></li>
<li><input class="customer_sales_value" id="customer_sales_2" type="checkbox" value="2"><label for="customer_sales_2">Jack</label></li>
<li><input class="customer_sales_value" id="customer_sales_3" type="checkbox" value="3"><label for="customer_sales_3">John</label></li>
<button id="customer_pop_share_btn">submit</button>
JQUERY
$('#customer_pop_share_btn').click(function(){
sales_list = each($('.customer_sales_value').val());
$.ajax({
type : 'POST',
url : '//'+base_url+'/ajax2/timeline-share.php',
data : 'sales_list='+sales_list,
success : function(data) {
});
});
我的jquery就是问题,我认为我要这样做的方法是将复选框值列表传递到类似sales_list = 1,2,3的变量中 我该怎么办?
答案 0 :(得分:2)
首先将名称属性设置为每个复选框,然后通过javascript在循环中推送已选中复选框的值。
<li>
<input class="customer_sales_value" id="customer_sales_1" name="c_sales_value" type="checkbox" value="1"><label for="customer_sales_1">James</label>
</li>
<li><input class="customer_sales_value" id="customer_sales_2" name="c_sales_value" type="checkbox" value="2"><label for="customer_sales_2">Jack</label></li>
<li><input class="customer_sales_value" id="customer_sales_3" name="c_sales_value" type="checkbox" value="3"><label for="customer_sales_3">John</label></li>
$('#customer_pop_share_btn').click(function() {
var selectedValues = [];
$.each($("input:checkbox[name=c_sales_value]:checked"), function(){
selectedValues.push($(this).val());
});
$.ajax({
type: 'POST',
url: '//' + base_url + '/ajax2/timeline-share.php',
data: {
sales_list: selectedValues
},
success: function(data) {});
});
});
答案 1 :(得分:1)
使用.map()
生成复选框值的数组。
在PHP脚本中,如果选中任何框,则$_POST['sales_list']
将是值的数组;如果未选中任何框,则将根本不会设置该变量。
$('#customer_pop_share_btn').click(function() {
var sales_list = $('.customer_sales_value:checked').map((i, el) => el.value).get();
$.ajax({
type: 'POST',
url: '//' + base_url + '/ajax2/timeline-share.php',
data: {
sales_list: sales_list
},
success: function(data) {});
});
});