【问题标题】:how to check if a checkbox is checked when sending data via ajax to php通过ajax向php发送数据时如何检查复选框是否被选中
【发布时间】:2020-04-18 12:58:04
【问题描述】:

我有一个 foreach 循环,它在复选框和一些输入字段中创建tr's。 每行都有一个以 id 为值的复选框。 每行还有一个隐藏的输入字段,以 id 为值。

我想区分请求是通过每行中自己的delete 按钮发送的,还是通过复选框发送的(这些)行。 (当多个复选框被选中时,我可以一次将它们全部删除)

<tr>
    <input type="hidden" name="file_id" value="<?php echo $file_id; ?>" /> <!-- file id which belongs to each row -->
    <td><input type="checkbox" class="checkbox" value="<?php echo $file_id; ?>" /></td>
    ...
    <button class="btn btn-sm btn-danger submit" type="submit" name="delete_file">Delete</button>
</tr>

我通过 jquery ajax 将数据发送到 php 文件:

// checkboxes value 
    $(document).on('click' , '.submit' , function() { 
        var checkbox_value = [];
        var file_id = $(this).closest("tr").find("input[name='file_id']").val();


        $('.checkbox').each(function() {
            if ($(this).is(":checked")) {
                checkbox_value.push($(this).val());
            }
        });
        checkbox_value = checkbox_value.toString();
        $.ajax({
            url: "admin.php",
            method: "POST",
            data: {
                checkbox_value: checkbox_value,
                file_id : file_id

            },
            success: function(data) {
                $('.result').html(data);

            }
        });
    });

php:

if(isset($_POST["checkbox_value"])) {

        $checkboxfiles[] = $_POST["checkbox_value"];
        $category = $_POST["category"]; 

        // checkbox loop
        foreach ($checkboxfiles as $checkboxfile) {
            foreach(explode(',', $checkboxfile) as $id) {

                echo $id.'<br />';
                echo 'delete via checkbox is choosen';

            }
        }

        exit;
}

if(isset($_POST["file_id"])) {
        ...
        echo 'delete via single row is choosen';

}

问题: 当我选择通过单行删除时(没有选中复选框),它仍然会发送 echo delete via checkbox is choosen

【问题讨论】:

  • 你能试试var_dump($_POST)吗?

标签: php jquery ajax checkbox checked


【解决方案1】:

试试这个代码

if (this.checked) {
    checkbox_value.push($(this).val());
}

【讨论】:

    猜你喜欢
    • 2012-03-18
    • 1970-01-01
    • 2019-01-12
    • 2018-10-14
    相关资源
    最近更新 更多