我有一个与复选框配对的类别列表。我找不到任何关于如何在var中存储所选复选框并将数据发送到服务器的文档。我需要从数据库中删除所选的类别。这是我正在处理的代码的一部分。
var cat_id = $('check_box').attr("id"); //gets the id of the checked category
var dataString = 'cat_id=' + cat_id; //should send all the selected checkbox IDs
$('.delete').click(function()
{
$.ajax({
type: "POST",
url: "edit_categories.php",
data: dataString,
cache: false,
success: function(html)
{
window.location.reload(true);
}
});//end ajax
});//end click function
使用以下命令动态创建复选框:
<input type="checkbox" name="check_box" class="check_box"
id="<?php echo $cat_id; ?>" />
每个复选框都有一个唯一的ID,它们的数量会有所不同。
在edit_categories.php中我只有一个mysql用于删除cat_id = $ _POST ['cat_id']的类别,但我无法弄清楚如何从所选复选框中获取所有ID。
答案 0 :(得分:3)
您可以使用.map()
获取一系列复选框ID,如下所示:
var cat_id = $(':checkbox:checked').map(function() {
return this.id;
}).get().join(',');
这将产生一个像"CheckBox1,Checkbox2,Checkbox3"
这样的字符串,用于发送服务器端。在那里,您可以在字符串上执行.split(",")
以获取要使用的ID数组。
答案 1 :(得分:0)
$('form')。serialize()可能有用 - 看看ajaxForm这真棒......
为您的复选框 - 将名称更改为'check_box []'并将值设置为cat_id而不是其ID。
然后你应该能够访问$ _POST ['cat_id],它应该是已发布值的数组。使用var_dump($ _POST ['cat_id']);
检查它答案 2 :(得分:0)
尝试这样的事情:
var keysToDelete = '';
$('.check_box:checked').each(function() {
keysToDelete+= $(this).attr("id");
});
dataString= 'cat_id='+keysToDelete;
// continue down to the ajax post