PHP改造年份下拉函数 实现学年学期选项适配存库要求
PHP下拉选项函数改造方案
核心改造不需要调整原有函数的整体框架,只需要把原来单年生成1个选项的循环逻辑,改成单年生成2个对应后缀的选项,分别匹配入库值和展示文本的格式要求即可,完全兼容原有上层调用逻辑。
改造后完整代码
public function dsYearOfEntry() { $t = date("Y"); $ds = null; // 保留原有默认提示选中项 $ds[""] = array("value"=>"CHOOSE","selected"=>true); $t = $t + 1; // 遍历30个年份,每个年份生成2个对应选项 for($i = 0; $i < 30; $i++){ $currentYear = $t - $i; // 先插入后缀为2的选项:键为入库实际值,值为下拉展示文本 $ds[$currentYear . '2'] = $currentYear . '-2'; // 再插入后缀为1的选项,保证同一年-2排在-1前面 $ds[$currentYear . '1'] = $currentYear . '-1'; } // 保留原有空数据兜底逻辑 $ds == null ? $ds = array("" => "Not Available") : ""; return $ds; }
关键逻辑说明
- 顺序完全匹配需求:每个年份遍历过程中先处理后缀2、再处理后缀1,整体按年份从新到旧递减,最终下拉展示顺序就是
2023-2、2023-1、2022-2、2022-1……的效果 - 入库值和展示文本自动对应:数组键名直接使用
年份+后缀的无横杠格式(比如20232),提交表单时可以直接拿这个值存入数据库;数组值为带横杠的展示格式,前端渲染下拉时直接取用即可,不需要额外做字符串转换 - 兼容原有逻辑:保留了原函数的默认选中提示、30年的时间跨度、无数据时的兜底返回,原来调用这个函数的业务代码不需要做任何修改
如果后续需要调整后缀规则(比如增加更多学期/期数后缀),只需要在循环内对应增加条目即可,不需要调整整体结构。
内容的提问来源于stack exchange,提问作者Andi Rahmat
相关产品推荐
相关产品推荐

