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

如何在CodeIgniter中使用框架内置方法编写form表单标签

CodeIgniter 框架自带表单标签实现方法

首先你需要先加载框架的表单辅助函数,所有框架封装的表单方法都依赖这个扩展,有两种加载方式可选:

  • 临时加载:在需要渲染表单的控制器方法中加入代码$this->load->helper('form');,仅当前方法生效
  • 全局加载:打开配置文件application/config/autoload.php,将form添加到$autoload['helper']配置项的数组中,全局可用无需重复加载

核心表单标签写法

不需要手写原生<form>标签,直接调用框架封装的方法即可,方法会自动生成符合规范的HTML标签,开启CSRF防护时还会自动插入对应的隐藏验证字段。

表单起止标签

  • 普通表单起始标签使用form_open()方法,第一个参数传表单提交的目标路由地址,第二个参数传标签属性数组,默认提交方法为post,自动拼接正确的项目路径:
// 生成的HTML等价于 <form action="你的项目域名/index.php/user/login" method="post" accept-charset="utf-8" id="loginForm" class="form-horizontal">
echo form_open('user/login', ['id' => 'loginForm', 'class' => 'form-horizontal']);
  • 如果是需要上传文件的表单,直接用form_open_multipart()替代form_open(),方法会自动加上enctype="multipart/form-data"属性,无需手动配置
  • 表单闭合标签直接调用form_close()即可,无需手写</form>:
echo form_close();

常用表单控件封装

框架同时封装了所有常用表单控件的生成方法,无需手写原生input标签:

  • 普通文本输入框:form_input($name, $默认值, $属性数组),对应<input type="text">
  • 密码输入框:form_password($name, $默认值, $属性数组),对应<input type="password">
  • 单选按钮:form_radio($name, $值, $是否默认选中, $属性数组),对应<input type="radio">
  • 复选框:form_checkbox($name, $值, $是否默认选中, $属性数组),对应<input type="checkbox">
  • 下拉选择框:form_dropdown($name, $选项数组, $默认选中值, $属性数组),对应<select>标签
  • 多行文本域:form_textarea($name, $默认值, $属性数组),对应<textarea>标签
  • 提交按钮:form_submit($name, $按钮文字, $属性数组),对应<input type="submit">
  • 标签文本:form_label($显示文字, $绑定控件id, $属性数组),对应<label>标签

注意:所有表单辅助函数的返回值是标签字符串,必须用echo输出才能渲染到页面中。


完整示例

一个简单的登录表单写法参考:

// 表单起始
echo form_open('user/doLogin', ['id' => 'loginForm', 'class' => 'mt-4']);
// 用户名项
echo form_label('用户名', 'username', ['class' => 'form-label']);
echo form_input('username', set_value('username'), ['class' => 'form-control', 'id' => 'username', 'placeholder' => '请输入用户名']);
// 密码项
echo form_label('密码', 'password', ['class' => 'form-label mt-3']);
echo form_password('password', '', ['class' => 'form-control', 'id' => 'password', 'placeholder' => '请输入密码']);
// 提交按钮
echo form_submit('loginBtn', '登录', ['class' => 'btn btn-primary w-100 mt-4']);
// 表单闭合
echo form_close();

这种写法和框架的表单验证类、CSRF防护、输入回填功能(set_value()等方法)完全适配,比手写原生表单更适配框架的运行逻辑。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.28 13:03:11