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

技术咨询:获取选中项值及新增300+套餐报‘out of Package’问题

我来帮你解决这两个和套餐配置相关的问题:

问题1:如何将选中项转换为对应值?

最灵活且易于维护的方式是用关联数组做值映射,相比嵌套三元运算符或多个if判断,这种方式在后续新增套餐时改动成本极低。

举个适配你代码的示例:

// 定义选中项(比如表单提交的'a'/'b'/'c')与对应金额的映射关系
$pledgeMapping = [
    'a' => 100,
    'b' => 200,
    'c' => 300,
    'd' => 500 // 后续新增套餐直接加在这里即可
];

// 获取用户提交的选中项
$selectedOption = $this->input->post('pledge');

// 从映射数组中获取对应金额,若选中项不存在可设置默认值或抛出提示
$pledge = isset($pledgeMapping[$selectedOption]) ? $pledgeMapping[$selectedOption] : 0;

这种方式的优势是逻辑清晰,后续扩展套餐只需要在映射数组里新增键值对,不需要修改核心判断逻辑。

问题2:新增300及以上套餐时提示“out of Package”

从你提供的代码来看,问题出在$pledge的赋值逻辑上:当前代码只处理了两种情况——选中'a'时赋值100,所有其他情况都强制赋值200,完全没有处理300及以上的套餐金额,所以当用户选择这类套餐时,系统找不到对应的合法金额,就会返回错误提示。

结合上面的映射方案,修改后的代码如下:

// 第一步:定义所有允许的套餐选项,包含300及以上的金额
$pledgeMapping = [
    'a' => 100,
    'b' => 200,
    'c' => 300,
    'd' => 400,
    'e' => 500
];

$selectedOption = $this->input->post('pledge');

// 先校验选中项是否在允许的套餐列表内
if (!isset($pledgeMapping[$selectedOption])) {
    // 触发"out of Package"提示
    $this->session->set_flashdata('pledge', [
        'message' => 'out of Package',
        'class' => 'error'
    ]);
    redirect(base_url('profile/give'));
}

// 合法的话,获取对应的套餐金额
$pledge = $pledgeMapping[$selectedOption];

// 你的原有业务逻辑
if ($data['user']['accountType'] == 1) {
    if ($this->profile_model->savePledge($session['session_id'], $pledge)) {
        $note_message = 'Pledge successfully added';
        $this->session->set_flashdata('pledge', [
            'message' => $note_message,
            'class' => 'success'
        ]);
        redirect(base_url('profile/give'));
    } else {
        // 处理保存失败的逻辑(补充完整原有省略的部分)
        $this->session->set_flashdata('pledge', [
            'message' => 'Failed to add pledge',
            'class' => 'error'
        ]);
        redirect(base_url('profile/give'));
    }
}

修改后:

  • 你可以随时新增任意金额的套餐,只需在$pledgeMapping里添加新的键值对
  • 只有当用户选择了不在映射列表里的非法选项时,才会返回“out of Package”提示,逻辑更严谨

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.22 09:10:00