1

I have a foreach loop which creates tr's with inside a checkbox and some input fields. Each row has a checkbox with the id as value. Each row has also a hidden input field with the id as value.

I want to distinguish whether a request is send via the own delete button in each row, or via the checkbox what is checked for (these) rows. (when multiple checkboxes are checked, i can delete them all at once)

<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>

i send the data via jquery ajax to the php file:

// 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);

            }
        });
    });

The 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';

}

Problem: When i choose to delete via single row (no checkbox is checked), it still sends the echo delete via checkbox is choosen

1
  • Can you try var_dump($_POST)? Commented Dec 29, 2019 at 14:36

1 Answer 1

1

try this code

if (this.checked) {
    checkbox_value.push($(this).val());
}
Sign up to request clarification or add additional context in comments.

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.