CI框架(表单验证)

1、form头部信息的自动输出函数(view)
<?php 
  $attributes = array('class' => 'email', 'id' => 'myform');
  echo form_open('email/send', $attributes);
 
  //上面一行代码输出:
  //<form method="post" accept-charset="utf-8" action="http://example.com/index.php/email/send" id="myform" class="email"/>
  
  /*  
  * form_open_multipart()
  * 函数用法同上,加上了文件上传的信息 上传方式默认为post
  */
?>

2、设置验证规则(controller)
<?php
//注意验证规则的变量名必须设置成 config
$config = array(
               array(
                     'field'   => 'username', 
                     'label'   => '用户名', 
                     'rules'   => 'required'
                  ),
               array(
                     'field'   => 'password', 
                     'label'   => '密码', 
                     'rules'   => 'required'
                  ),
               array(
                     'field'   => 'passconf', 
                     'label'   => '确认密码', 
                     'rules'   => 'required|matches[password]'
                  ), 
               array(
                     'field'   => 'tel', 
                     'label'   => '手机', 
                     'rules'   => 'required|integer|exact_length[11]'),
               array(
                     'field'   => 'email', 
                     'label'   => '邮箱', 
                     'rules'   => 'required|valid_email'
                  )
            );
//上面的会自动
//单独设置规则
$this->form_validation->set_rules('username', 'Username', 'trim|required|min_length[5]|max_length[12]|xss_clean');
$this->form_validation->set_rules('password', 'Password', 'trim|required|matches[passconf]|md5');
$this->form_validation->set_rules('passconf', 'Password Confirmation', 'trim|required');
$this->form_validation->set_rules('email', 'Email', 'trim|required|valid_email');
 
?>

3、规则对应的错误提示(controller)
<?php
$this->form_validation->set_message('required', '必须填写');
$this->form_validation->set_message('valid_email', '不是有效的email');
?>

4、运行检查错误信息(controller)
<?php 
  $this->load->helper(array('form', 'url'));
  //加载CI表单验证库
  $this->load->library('form_validation');

  //----------------------------------------
  #  验证规则及错误信息代码放在这里
  //----------------------------------------
  if ($this->form_validation->run() == FALSE){
      //提交失败 重新加载表单部分
      $this->load->view('myform');
  }else{
      //提交成功 表单处理
      //跳转成功页面
      $this->load->view('formsuccess');
  }
}

5、错误信息的输出函数(view)
<?php
    //1.一股脑儿的全部输出(放在表单标签的上方即可)
    echo validation_errors(); 
    //2.针对单个表单单独输出(放在单个标签附近 参数为对应表单元素的域名)
    echo form_error('password'); 
    //3.针对单个表单输出的时候 需要修改定界符 显示错误信息样式(控制器里设置)
    $this->form_validation->set_error_delimiters('<span class="error">', '</span>');
    //设置成内联元素比较好
?>

6、错误后 重新回填表单(view)
<?php
  //一般元素 回填(放在标签的values属性中输出)
  echo set_value('email'); 
  //特殊元素select/checkbox/radio 第三个参数为true时 默认被选中
  //第二个参数 是对应的表单元素的实际值
  echo set_select('myselect', 'three'); //放在option的空白属性里
  echo set_checkbox('mycheck[]', '1');  //放在checkbox的空白属性里
  echo set_radio('myradio', '2');       //放在radio的空白属性里

?>

【html代码】

<html>
  <head>
    <title>My Form</title>
  </head>
<body>
  <?php echo validation_errors(); ?>
 
  <?php echo form_open('form'); ?>
 
    <h5>Username</h5>
    <input type="text" name="username" value="<?php  echo set_value('username'); ?>" size="50" />
    <?php echo form_error('username'); ?>
 
    <h5>Password</h5>
    <input type="text" name="password" value="<?php  echo set_value('password'); ?>" size="50" />
    <?php echo form_error('password'); ?>
 
    <h5>Password Confirm</h5>
    <input type="text" name="passconf" value="<?php  echo set_value('passconf'); ?>" size="50" />
    <?php echo form_error('passconf'); ?>
 
    <h5>Email Address</h5>
    <input type="text" name="email" value="<?php  echo set_value('email'); ?>" size="50" />
    <?php echo form_error('email'); ?>
 
    <div><input type="submit" value="Submit" /></div>
 
</form>
 
</body>
</html>

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值