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 相关文章推荐
动态新闻发布的实现及其技巧
Oct 09 PHP
php escape URL编码
Dec 10 PHP
php获取通过http协议post提交过来xml数据及解析xml
Dec 16 PHP
基于php权限分配的实现代码
Apr 28 PHP
大家在抢红包,程序员在研究红包算法
Aug 31 PHP
在Mac OS上搭建Nginx+PHP+MySQL开发环境的教程
Dec 21 PHP
CodeIgniter记录错误日志的方法全面总结
May 17 PHP
PHP中call_user_func_array回调函数的用法示例
Nov 26 PHP
使用PHP下载CSS文件中的所有图片【几行代码即可实现】
Dec 14 PHP
PHP基于ICU扩展intl快速实现汉字转拼音及按拼音首字母分组排序的方法
May 03 PHP
微信公众号开发之获取位置信息php代码
Jun 13 PHP
TP3.2.3框架文件上传操作实例详解
Jan 23 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实现按照权重随机排序数据的方法
2015/01/09 PHP
PHP中error_log()函数的使用方法
2015/01/20 PHP
PHP进行批量任务处理不超时的解决方法
2016/07/11 PHP
全面解析PHP验证码的实现原理 附php验证码小案例
2016/08/17 PHP
php断点续传之文件分割合并详解
2016/12/13 PHP
检测jQuery.js是否已加载的判断代码
2011/05/20 Javascript
js Math 对象的方法
2013/09/01 Javascript
js换图片效果可进行定时操作
2014/06/09 Javascript
JavaScript判断前缀、后缀是否是空格的方法
2015/04/15 Javascript
jquery制作属于自己的select自定义样式
2015/11/23 Javascript
浅析JS获取url中的参数实例代码
2016/06/14 Javascript
关于JS中二维数组的声明方法
2016/09/24 Javascript
Koa2微信公众号开发之消息管理
2018/05/16 Javascript
详解vue填坑之解决部分浏览器不支持pushState方法
2018/07/12 Javascript
vue.js template模板的使用(仿饿了么布局)
2018/08/13 Javascript
JS实现马赛克图片效果完整示例
2019/04/13 Javascript
在vue项目中使用codemirror插件实现代码编辑器功能
2019/08/27 Javascript
vue - vue.config.js中devServer配置方式
2019/10/30 Javascript
JQuery+drag.js上传图片并且实现图片拖曳
2020/11/18 jQuery
[00:15]TI9观赛名额抽取
2019/07/10 DOTA
Python 返回汉字的汉语拼音
2009/02/27 Python
python中文分词,使用结巴分词对python进行分词(实例讲解)
2017/11/14 Python
python2.7读取文件夹下所有文件名称及内容的方法
2018/02/24 Python
Python读取txt某几列绘图的方法
2018/10/14 Python
python 实现语音聊天机器人的示例代码
2018/12/02 Python
Python解析、提取url关键字的实例详解
2018/12/17 Python
美国摄影爱好者购物网站:Focus Camera
2016/10/21 全球购物
印度购买眼镜和太阳镜网站:Coolwinks
2018/09/26 全球购物
Genny意大利官网:意大利高级时装品牌
2020/04/15 全球购物
一些.net面试题
2014/10/06 面试题
《从现在开始》教学反思
2014/04/15 职场文书
高中综合实践活动总结
2014/07/07 职场文书
无刑事犯罪记录证明范本
2014/09/29 职场文书
党员群众路线整改措施及今后努力方向
2014/10/28 职场文书
2014年财务工作总结与计划
2014/12/08 职场文书
2015入党自传书范文
2015/06/26 职场文书