【问题标题】:Store an array value in jQuery from checkbox从复选框将数组值存储在jQuery中
【发布时间】:2015-12-15 09:41:51
【问题描述】:

嘿嘿,

一直在尝试这样做,但仍然没有解决方案。我想使用 jQuery 存储 Input checkboxarray 从表单和 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。请给我建议/评论,谢谢!

【问题讨论】:

  • 你有多个复选框吗?
  • 你可以发送一个数组
  • 每个元素的 ID 应该是唯一的,并且您正在复制它们。
  • 我在 php 的 while 循环中使用多个复选框,包括 ids
  • 可以提供删除输入吗?

标签: php jquery arrays checkbox


【解决方案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 行。如果用户选择超过 1,它将选择所选复选框的最高值
【解决方案2】:

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

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

您还可以使用属性等扇区来根据名称属性定位复选框:

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

【讨论】:

  • 我尝试使用该类,但它只为值选择 1 行
  • @Amran:你能分享一下小提琴吗?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-08-06
  • 2016-06-14
  • 1970-01-01
  • 1970-01-01
  • 2014-03-31
相关资源
最近更新 更多