Yii框架表单提交验证功能分析


Posted in PHP onJanuary 07, 2017

本文实例讲述了Yii框架表单提交验证功能。分享给大家供大家参考,具体如下:

一、前端提交的三种方式

前面已经提出,表单提交一共只有三种方式。

1. 前端原生html

(1)原生html标签

首先,直接使用html标签的input,a等;
其次,使用css进行布局。
再次,使用js或jquery方式验证
最后,提交(get/post/ajax,目前较多使用jquery提交)。
注:该种方式由于较灵活,使用最多。

(2)原生form

js或jquery方式验证,yii方式提交。

相对灵活

<form ... onSubmit="return validationFunc">
...
</form>
<script type="text/javascript">
function validationFunc(){
  //验证逻辑
}
</script>

批注:如果仅仅使用表单自带的onsubmit验证不够,也可以采用第一种办法。此时就不要使用form自带的submit按钮了。

2,前端使用yii自带widget

(3)yii方式验证、提交。

① 自带blog登陆表单

<?php
    $form=$this->beginWidget('CActiveForm', array(
      'id'=>'login-form',
      'enableClientValidation'=>true,
      'clientOptions'=>array(
        'validateOnSubmit'=>true,
      ),
    ));
  ?>

② 上传用户头像时

<?php $form=$this->beginWidget('CActiveForm', array(
  'id'=>'user-form',
  'enableAjaxValidation'=>false,
  'htmlOptions'=>array('enctype'=>'multipart/form-data'),
)); ?>

③ 看到的一个例子

<?php $form=$this->beginWidget('CActiveForm',array(
  'id'=>'login-from',
  'enableAjaxValidation'=>true,
  'action'=>'array('site/login'),
  )
)
?>

此时用到yii的表单验证功能。需要model+controller+view配合使用。详见:yii指南。

Yii方式验证、提交

① 首先,在model的rules(){return array();}设置验证规则

② 其次,在view里使用errorMessage,label,field,error

<?php echo $form->labelEx($model,'author'); ?>
<?php echo $form->textField($model,'author',array('size'=>60,'maxlength'=>128)); ?>
<?php echo $form->error($model,'author'); ?>

3,最后,在controller里

使用

$model = new Post;
$model->attributes=$_POST['Post'];

yii判断提交方式

Yii::app()->request->isPostRequest

效率比较:

(1)效率最差;
(2)效率中等;
(3)效率最高。

二、Yii在后端接收前端传来值的两种方式

1,通过二维数组$_POST['ClassName']

如果前端的表单是关于某一个model的,可以用此方法。使用较多。

例如:

$model->attributes=$_POST['Post'];
$comment->attributes=$_POST['Comment'];

还可以添加:

$comment->post_id=$this->id;

强制数据提交

$model->save(false)

2,获取get或post请求的值$this->request->getParam('key');

(1)form表单提交

前端:

<form>
<input type="text" name="belongs_to" />
<input type="submit" value="提交" />
</form>

后端:

$this->request->getParam('belongs_to');

(2)jquery的post提交

$this->request->getParam('key1');

希望本文所述对大家基于Yii框架的PHP程序设计有所帮助。

PHP 相关文章推荐
PHP 中的类
Oct 09 PHP
Linux下ZendOptimizer的安装与配置方法
Apr 12 PHP
CI框架源码阅读,系统常量文件constants.php的配置
Feb 28 PHP
php判断正常访问和外部访问的示例
Feb 10 PHP
PHP父类调用子类方法的代码例子
Apr 09 PHP
ThinkPHP的MVC开发机制实例解析
Aug 23 PHP
PHP实现股票趋势图和柱形图
Feb 07 PHP
WordPress网站性能优化指南
Nov 18 PHP
php实现将base64格式图片保存在指定目录的方法
Oct 13 PHP
PHP 实现页面静态化的几种方法
Jul 23 PHP
PHP设计模式之适配器模式原理与用法分析
Apr 25 PHP
PHP7如何开启Opcode打造强悍性能详解
May 11 PHP
Yii框架弹出框功能示例
Jan 07 #PHP
Yii框架弹出窗口组件CJuiDialog用法分析
Jan 07 #PHP
PHP验证码类ValidateCode解析
Jan 07 #PHP
PHP缩略图生成和图片水印制作
Jan 07 #PHP
php使用preg_match()函数验证ip地址的方法
Jan 07 #PHP
PHP实现移除数组中为空或为某值元素的方法
Jan 07 #PHP
PHP中仿制 ecshop验证码实例
Jan 06 #PHP
You might like
解析PHP中empty is_null和isset的测试
2013/06/29 PHP
PHP彩蛋信息介绍和阻止泄漏的方法(隐藏功能)
2014/08/06 PHP
php实现字符串反转输出的方法
2015/03/14 PHP
深入理解PHP中的Streams工具
2015/07/03 PHP
php简单实现多维数组排序的方法
2016/09/30 PHP
php获取ajax的headers方法与内容实例
2017/12/27 PHP
form中限制文本字节数js代码
2007/06/10 Javascript
js判读浏览器是否支持html5的canvas的代码
2013/11/18 Javascript
jQuery实现的输入框选择时间插件用法实例
2015/02/28 Javascript
JavaScript中Number.NEGATIVE_INFINITY值的使用详解
2015/06/05 Javascript
jquery插件jquery.nicescroll实现图片无滚动条左右拖拽的方法
2015/08/10 Javascript
详解AngularJs HTTP响应拦截器实现登陆、权限校验
2017/04/11 Javascript
Vue调试神器vue-devtools安装方法
2017/12/12 Javascript
详解设置Webstorm 利用babel将ES6自动转码成ES5
2017/12/20 Javascript
three.js实现3D模型展示的示例代码
2017/12/31 Javascript
在Vue组件上动态添加和删除属性方法
2018/02/23 Javascript
vue.js自定义组件directives的实例代码
2018/11/09 Javascript
JS跨浏览器解析XML应用过程详解
2020/10/16 Javascript
python抓取豆瓣图片并自动保存示例学习
2014/01/10 Python
在Python中封装GObject模块进行图形化程序编程的教程
2015/04/14 Python
python如何使用正则表达式的前向、后向搜索及前向搜索否定模式详解
2017/11/08 Python
pandas全表查询定位某个值所在行列的方法
2018/04/12 Python
python numpy和list查询其中某个数的个数及定位方法
2018/06/27 Python
python实现定时发送qq消息
2019/01/18 Python
python3 selenium自动化 下拉框定位的例子
2019/08/23 Python
python接口调用已训练好的caffe模型测试分类方法
2019/08/26 Python
python基于gevent实现并发下载器代码实例
2019/11/01 Python
使用Python画出小人发射爱心的代码
2019/11/23 Python
在 Python 中使用 MQTT的方法
2020/08/18 Python
canvas需要在标签里直接定义宽高
2014/12/17 HTML / CSS
读书活动总结范文
2014/04/26 职场文书
迎国庆演讲稿
2014/09/15 职场文书
整改报告怎么写
2014/11/06 职场文书
2014年妇联工作总结
2014/11/21 职场文书
自我检讨报告
2015/01/28 职场文书
2016年小学教师师德承诺书
2016/03/25 职场文书