You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PHP开发:如何获取复选框data-valuetwo属性值并传入后台处理函数

解决方案

方案1:拼接value值(最简便)

直接把id和month_claim用分隔符拼在checkbox的value属性里,后台接收后拆分即可:
修改单复选框结构代码:

<input name="checkbox[]" type="checkbox" class="checkbox" id="checkbox[]" value="<?php echo $ot['id'].'|'.$ot['month_claim']; ?>" >

修改后台处理逻辑:

function getCheckboxUpdate(){
    $conn=db();
    if(isset($_POST['checkbox'])){
        $checkbox = $_POST['checkbox'];
        $activate = isset($_POST['activate']);
        // 拆分获取id和month_claim
        $ids = [];
        $month_claim = '';
        foreach($checkbox as $item){
            list($id, $mc) = explode('|', $item);
            $ids[] = intval($id); // 转数字防注入
            $month_claim = $mc; // 若所有选中项month_claim一致可直接赋值
        }
        $id_str = "('" . implode( "','", $ids ) . "');" ;
        // 改用预处理执行防SQL注入
        $status = $activate ? 'VERIFIED' : 'REJECTED';
        $sql="UPDATE aims_ot_approval ap LEFT JOIN aims_ot a ON a.id = ap.ot_id 
              SET ap.verify_status = ?,ap.verify_date=CURRENT_TIMESTAMP 
              WHERE a.month_claim = ?
              AND a.staff_record_id IN $id_str" ;
        $stmt = $conn->prepare($sql);
        $stmt->bind_param("ss", $status, $month_claim);
        $stmt->execute();
        return $stmt->get_result();
    }
}

方案2:动态传值(不修改原有value结构)

如果不想改动原有value逻辑,可新增隐藏字段,提交表单时把选中项的data-valuetwo值写入隐藏字段传递:
修改表单结构,新增隐藏字段:

<form name="frmactive" method="post" action="">
    <!-- 新增隐藏字段存储month_claim -->
    <input type="hidden" name="month_claim" id="month_claim" value="">
    <!-- 原有表单代码不变 -->
    <table border="0">
    <tr><td colspan="5">
         <input class="btn btn-success" name="activate" type="submit" id="activate" value="VERIFY" />
         <input class="btn btn-danger" name="deactivate" type="submit" id="deactivate" value="REJECT" />
    </td>
    </table>
</form>

修改JS脚本,增加表单提交监听逻辑:

$(document).ready(function(){
    // 原有全选逻辑不变
    $('#select_all').on('click',function(){
        if(this.checked){
            $('.checkbox').each(function(){
                this.checked = true;
            });
        }else{
             $('.checkbox').each(function(){
                this.checked = false;
            });
        }
    });
    $('.checkbox').on('click',function(){
        if($('.checkbox:checked').length == $('.checkbox').length){
            $('#select_all').prop('checked',true);
        }else{
            $('#select_all').prop('checked',false);
        }
    });
    // 新增表单提交监听,写入month_claim值
    $('form[name="frmactive"]').on('submit', function(){
        // 若所有选中项month_claim一致,取第一个值即可
        let checkedMc = $('.checkbox:checked').first().data('valuetwo');
        $('#month_claim').val(checkedMc);
        // 若需要传递多个不同的month_claim,可转JSON字符串存储,后台再json_decode解析
        // let mcs = [];
        // $('.checkbox:checked').each(function(){
        //     mcs.push($(this).data('valuetwo'));
        // });
        // $('#month_claim').val(JSON.stringify(mcs));
    });
});

后台直接读取$_POST['month_claim']即可使用。


内容的提问来源于stack exchange,提问作者AccidentlyADeveloper

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.07 00:48:02