从复选框将数组值存储在jQuery中

时间:2015-12-15 09:41:51

标签: php jquery arrays checkbox

Hye,

尝试这样做但仍然没有解决方案。我想在表单中存储Input checkbox array,并使用jQuery存储post selected checkbox的值以进行删除。当用户进行大于1的选择时,我无法获得复选框值。我是否知道使用jQuery存储数组值的正确方法。以下是html复选框的代码:

<input type="checkbox" name="checkBox[]" id="checkBox" value='".$row['staff_id']."'>

这是jQuery:

$(document).ready(function() {
$("#del").click(function(){
    var del = $("#del").val();
    var checkBox = $("#checkBox:checked").val();
    $.post('admin_cuti/staff-delete.php',
    {
        del : del,
        checkBox : checkBox
    }, function(data){
        $("#result_del").html(data)
       });  
    });
});
  

使用delete.php上的完整代码进行更新。用户可以点击多个   复选框以删除数据。就我而言,它只能删除1行。   以下是代码:

<?php
require_once('../db_connection/connection-intra.php');
//Delete function
if(isset($_POST['del'])){
    if(empty($_POST['checkBox'])){
        echo "<span style="."color:red"."><br>&nbsp;No record selected</span><p/>";
    }
    elseif(isset($_POST['checkBox'])){
        $checkbox = $_POST['checkBox'];
        for($i=0;$i<count($_POST['checkBox']);$i++){
            $del_id = $checkbox[$i];

            $sql = "DELETE FROM staff WHERE staff_id='$del_id'";
            if (mysqli_query($conn, $sql)) {
                echo "Record deleted successfully";
            } else {
                echo "Error deleting record: " . mysqli_error($conn);
            } 
        } 
    } 
} //end of delete function 
?>

我仍然在学习网络编程,特别是在jquery和javascript中。请给我一个建议/评论,谢谢!

2 个答案:

答案 0 :(得分:1)

尝试:

    $("#del").click(function(){
        var del = $(this).val();
        var checkBox = $(this).closest('form').find('input[type="checkbox"]:checked');
var values = [];
   $.each(checkBox,function(i,v){
       values.push($(v).val());
   });
        $.post('admin_cuti/staff-delete.php',
        {
            del : del,
            checkBox : values
        }, function(data){
            $("#result_del").html(data)
           });  
        });

答案 1 :(得分:0)

您有复选框元素的重复ID。和id选择器只选择匹配集中的第一个元素。您可以为所有复选框使用相同的类(例如checkBox),然后使用类选择器来定位它们:

var checkBox = $(".checkBox:checked").val();

您还可以使用属性相等扇区来定位基于名称属性的复选框:

var checkBox = $('[name="checkBox[]"]:checked').val();