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

CodeIgniter控制器中无法获取追加的输入数组值问题

我来帮你排查这个问题——动态追加的表单字段在CodeIgniter控制器里拿不到值,通常是字段命名规范或者后端获取方式的问题,一步步来解决:

第一步:修正前端动态输入框的name属性

你当前的append代码截断了,核心问题是必须把动态生成的输入框name设置为数组格式(比如name="bank_costs[]"),这样浏览器才会把所有同名字段打包成数组提交,而不是后面的字段覆盖前面的。

补全后的前端代码示例(用模板字符串避免引号转义问题):

var max_fields = 50; 
var wrapper = $(".bankcostaddsize"); 
var add_button = $(".bankcost_addsize_field"); 
var x = 1; 

$(add_button).click(function(e){ 
    e.preventDefault(); 
    if(x < max_fields){ 
        x++; 
        $(wrapper).append(`
            <div class="form-group clearfix">
                <label class="col-xs-3 control-label"></label>
                <div class="col-xs-5">
                    <div class="row">
                        <div class="col-md-5">
                            <!-- 关键:name设置为数组格式 -->
                            <input type="text" name="bank_costs[]" class="form-control" placeholder="输入内容"/>
                        </div>
                        <!-- 可选:添加删除按钮优化体验 -->
                        <div class="col-md-2">
                            <button type="button" class="btn btn-danger remove_field">删除</button>
                        </div>
                    </div>
                </div>
            </div>
        `); 
    } 
});

第二步:在CodeIgniter控制器中正确获取数组

表单通过POST提交后,用CodeIgniter的输入类就能直接拿到这个数组:

// 获取整个数组,第二个参数TRUE表示开启XSS过滤,不需要可传FALSE
$bank_costs = $this->input->post('bank_costs', TRUE);

// 处理数组数据(示例)
if (!empty($bank_costs)) {
    foreach ($bank_costs as $item) {
        // 跳过空值
        if (empty(trim($item))) continue;
        // 这里写你的业务逻辑,比如存入数据库
        // $this->db->insert('your_table', ['cost' => $item]);
    }
}

常见排查点

  • 确认表单范围:检查你的$(".bankcostaddsize")容器是否在<form>标签内部,动态生成的字段必须在表单范围内才能被提交。
  • 提交方式检查:确保表单是method="post"提交,CodeIgniter默认只处理POST数据(不推荐用GET提交数组)。
  • CSRF验证:如果开启了CSRF保护(默认开启),确保主表单包含CSRF令牌(用form_open()生成表单会自动添加,或者手动插入令牌隐藏字段),动态字段不需要额外处理令牌。
  • 调试验证:如果还是拿不到值,先在控制器里打印所有POST数据,确认字段是否被提交:
var_dump($this->input->post());
exit;

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.26 08:44:03