如何将所有复选框ID和值存储在2D数组中,以及如何使用Ajax存储到php页面?

时间:2019-01-04 11:16:14

标签: php jquery ajax

我有一个输入type=checkbox,其中包含来自id的{​​{1}}。我需要选择一些复选框,当我单击特定的单击事件时,我需要将所有复选框值1-10(1-0/ checked-not checked) s存储在2d数组中,并使用ajax发送到php页面。

id
<input type="checkbox" id='1' name="ppackages" class="success">

输出为var popularpackages = []; $("input:checkbox").each(function(){ var $this = $(this); popularpackages.push($this.attr("id")); }); alert(popularpackages); 但我需要1,2,3,4,5,6,7,8,9,10 (id,checked/not checked)

1 个答案:

答案 0 :(得分:0)

要实现此目的,您可以使用map()构建数组,然后将idchecked属性作为子数组返回,如下所示:

var popularpackages = $("input:checkbox").map(function() {
  return [[parseInt(this.id, 10), this.checked ? 1 : 0]];
}).get();

console.log(popularpackages);
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<input type="checkbox" id="1" name="ppackages" class="success" checked="checked" />
<input type="checkbox" id="2" name="ppackages" class="success" />
<input type="checkbox" id="3" name="ppackages" class="success" />
<input type="checkbox" id="4" name="ppackages" class="success" />
<input type="checkbox" id="5" name="ppackages" class="success" checked="checked" />
<input type="checkbox" id="6" name="ppackages" class="success" />
<input type="checkbox" id="7" name="ppackages" class="success" />
<input type="checkbox" id="8" name="ppackages" class="success" />
<input type="checkbox" id="9" name="ppackages" class="success" checked="checked" />
<input type="checkbox" id="10" name="ppackages" class="success" />

然后可以像往常一样使用popularpackages或jQuery的其他AJAX方法中的任何一个,将$.ajax数组发送到PHP逻辑。