0

我从循环中的值HTML动态创建表中的行。每行代表一个行,并由一个 id 标识。MySQLPHPMySQL

我希望能够<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'));

如何为复选框编写类似的内容?

如您所见,我对此很陌生。如果您需要查看更多代码,请告诉我。

4

2 回答 2

1

您可以使用prop 属性来检查复选框是否被选中。这是一个现场演示

function serializeCheckboxes(input)
    {
        var array = [];
        input.each(function(){ 
            if($(this).prop("checked"))
            {
                array.push($(this).attr("id"))  
            }                
        });
        alert(array);
        return array;

    }​
于 2012-11-16T11:29:58.190 回答
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;
});
于 2012-11-16T13:44:44.467 回答