欢迎各位兄弟 发布技术文章

这里的技术是共享的

You are here

CI框架学习之四(表单验证)

版权声明:本文为博主原创文章,未经博主允许不得转载。
 

目录(?)[+]

 

1、form头部信息的自动输出函数(view)

 

[php] view plain copy
 
 在CODE上查看代码片派生到我的代码片
  1. <?php   
  2.   $attributes = array('class' => 'email''id' => 'myform');  
  3.   echo form_open('email/send'$attributes);  
  4.   
  5.   //上面一行代码输出:  
  6.   //<form method="post" accept-charset="utf-8" action="http://example.com/index.php/email/send" id="myform" class="email"/>  
  7.     
  8.   /*   
  9.   * form_open_multipart() 
  10.   * 函数用法同上,加上了文件上传的信息 上传方式默认为post 
  11.   */  
  12. ?>  

 

2、设置验证规则(controller)

 

[php] view plain copy
 
 在CODE上查看代码片派生到我的代码片
  1. <?php  
  2. //注意验证规则的变量名必须设置成 config  
  3. $config = array(  
  4.                array(  
  5.                      'field'   => 'username',   
  6.                      'label'   => '用户名',   
  7.                      'rules'   => 'required'  
  8.                   ),  
  9.                array(  
  10.                      'field'   => 'password',   
  11.                      'label'   => '密码',   
  12.                      'rules'   => 'required'  
  13.                   ),  
  14.                array(  
  15.                      'field'   => 'passconf',   
  16.                      'label'   => '确认密码',   
  17.                      'rules'   => 'required|matches[password]'  
  18.                   ),   
  19.                array(  
  20.                      'field'   => 'tel',   
  21.                      'label'   => '手机',   
  22.                      'rules'   => 'required|integer|exact_length[11]'),  
  23.                array(  
  24.                      'field'   => 'email',   
  25.                      'label'   => '邮箱',   
  26.                      'rules'   => 'required|valid_email'  
  27.                   )  
  28.             );  
  29. //上面的会自动  
  30. //单独设置规则  
  31. $this->form_validation->set_rules('username''Username''trim|required|min_length[5]|max_length[12]|xss_clean');  
  32. $this->form_validation->set_rules('password''Password''trim|required|matches[passconf]|md5');  
  33. $this->form_validation->set_rules('passconf''Password Confirmation''trim|required');  
  34. $this->form_validation->set_rules('email''Email''trim|required|valid_email');  
  35.   
  36. ?>  

 

3、规则对应的错误提示(controller)

 

[php] view plain copy
 
 在CODE上查看代码片派生到我的代码片
  1. <?php  
  2. $this->form_validation->set_message('required''必须填写');  
  3. $this->form_validation->set_message('valid_email''不是有效的email');  
  4. ?>  

 

4、运行检查错误信息(controller)

 

[php] view plain copy
 
 在CODE上查看代码片派生到我的代码片
  1. <?php   
  2.   $this->load->helper(array('form''url'));  
  3.   //加载CI表单验证库  
  4.   $this->load->library('form_validation');  
  5.   //----------------------------------------  
  6.   #  验证规则及错误信息代码放在这里  
  7.   //----------------------------------------  
  8.   if ($this->form_validation->run() == FALSE){  
  9.       //提交失败 重新加载表单部分  
  10.       $this->load->view('myform');  
  11.   }else{  
  12.       //提交成功 表单处理  
  13.       //跳转成功页面  
  14.       $this->load->view('formsuccess');  
  15.   }  
  16. }  

 

5、错误信息的输出函数(view)

 

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

 

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] view plain copy
 
 在CODE上查看代码片派生到我的代码片
  1. <html>  
  2.   <head>  
  3.     <title>My Form</title>  
  4.   </head>  
  5. <body>  
  6.   <?php echo validation_errors(); ?>  
  7.   
  8.   <?php echo form_open('form'); ?>  
  9.   
  10.     <h5>Username</h5>  
  11.     <input type="text" name="username" value="<?php  echo set_value('username'); ?>" size="50" />  
  12.     <?php echo form_error('username'); ?>  
  13.   
  14.     <h5>Password</h5>  
  15.     <input type="text" name="password" value="<?php  echo set_value('password'); ?>" size="50" />  
  16.     <?php echo form_error('password'); ?>  
  17.   
  18.     <h5>Password Confirm</h5>  
  19.     <input type="text" name="passconf" value="<?php  echo set_value('passconf'); ?>" size="50" />  
  20.     <?php echo form_error('passconf'); ?>  
  21.   
  22.     <h5>Email Address</h5>  
  23.     <input type="text" name="email" value="<?php  echo set_value('email'); ?>" size="50" />  
  24.     <?php echo form_error('email'); ?>  
  25.   
  26.     <div><input type="submit" value="Submit" /></div>  
  27.   
  28. </form>  
  29.   
  30. </body>  
  31. </html>  
  32. 来自  http://blog.csdn.net/wujiangwei567/article/details/44588929
 


 

普通分类: