我在HTML
表中动态地从MySQL
循环中的PHP
值创建行。每行代表MySQL
中的一行,并由id标识。
我希望每行都有一个<input type='checkbox'>
,并在底行有一个“删除所选行”按钮。
我的问题是我应该POST
选中的复选框以及如何在PHP
文件中识别它们。
我将此脚本发送到serialize
<input type='text'>
个字段:
function serealizeInputs (input)
{
var array = [];
input.each(function(){ array.push($(this).val()) });
return array;
}
var value = serealizeInputs($('.my_input_field'));
如何为复选框编写类似的内容?
你可能会看到我对这个很陌生。如果您需要查看更多代码,请与我们联系。答案 0 :(得分:1)
您可以使用prop attribute检查是否选中了复选框。这是live demo
function serializeCheckboxes(input)
{
var array = [];
input.each(function(){
if($(this).prop("checked"))
{
array.push($(this).attr("id"))
}
});
alert(array);
return array;
}
答案 1 :(得分:1)
要检索所有选中的复选框,请使用:checked
选择器http://api.jquery.com/checked-selector/
管理此操作的常用技巧是使用数组运算符[]
<?php foreach ($rows as $id => $row) : ?>
<input type="checkbox" name="to_delete[]" value="<?php echo $id ?>" />
<?php endforeach; ?>
在管理删除的PHP代码中,to_delete
条目将是一个字符串数组。
foreach ($_POST['to_delete'] as $rowId) {
// Delete the row from database
}
另外,要不引人注目!依赖于包含所有<form>
元素的标准<input>
元素。这将真正简化您的JavaScript代码,因为您只需要调用jQuery.serializeArray来检索已选中复选框的数组。
$('#form').on('submit', function(e) {
e.preventDefault();
var data = $(this).serializeArray();
// POST an AJAX request with data
return false;
});