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数据库抽象层 PDO
May 07 PHP
PHP读取ACCESS数据到MYSQL的代码
May 11 PHP
php foreach循环中使用引用的问题
Nov 06 PHP
PHP session文件独占锁引起阻塞问题解决方法
May 12 PHP
解析PHP的Yii框架中cookie和session功能的相关操作
Mar 17 PHP
php实现遍历文件夹的方法汇总
Mar 02 PHP
IIS 7.5 asp Session超时时间设置方法
Apr 17 PHP
弹出模态框modal的实现方法及实例
Sep 19 PHP
PHP让网站移动访问更加友好方法
Feb 14 PHP
Laravel框架处理用户的请求操作详解
Dec 20 PHP
php数组函数array_push()、array_pop()及array_shift()简单用法示例
Jan 26 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基础知识:类与对象(1)
2006/12/13 PHP
PHP设计模式之调解者模式的深入解析
2013/06/13 PHP
PHP加密扩展库Mcrypt安装和实例
2013/11/10 PHP
微信公众号点击菜单即可打开并登录微站的实现方法
2014/11/14 PHP
Javascript this指针
2009/07/30 Javascript
JavaScript 事件系统
2010/07/22 Javascript
URL地址中的#符号使用说明
2011/02/12 Javascript
让图片旋转任意角度及JQuery插件使用介绍
2013/03/20 Javascript
DOM基础教程之使用DOM控制表单
2015/01/20 Javascript
JavaScript中的return语句简单介绍
2015/12/07 Javascript
详解js中class的多种函数封装方法
2016/01/03 Javascript
15个值得开发人员关注的jQuery开发技巧和心得总结【经典收藏】
2016/05/25 Javascript
微信小程序 Audio API详解及实例代码
2016/09/30 Javascript
Angular2中Bootstrap界面库ng-bootstrap详解
2016/10/18 Javascript
简单实现jQuery弹窗效果
2017/10/30 jQuery
MVVM 双向绑定的实现代码
2018/06/21 Javascript
vue组件文档(.md)中如何自动导入示例(.vue)详解
2019/01/25 Javascript
vuex入门最详细整理
2020/03/04 Javascript
基于js判断浏览器是否支持webGL
2020/04/18 Javascript
[01:04]DOTA2上海特锦赛现场采访 FreeAgain遭众解说围攻
2016/03/25 DOTA
Python利用正则表达式匹配并截取指定子串及去重的方法
2015/07/30 Python
python设计模式大全
2016/06/27 Python
Python中使用asyncio 封装文件读写
2016/09/11 Python
Python3实现并发检验代理池地址的方法
2016/09/18 Python
python读取yaml文件后修改写入本地实例
2020/04/27 Python
俄罗斯在线购买飞机票、火车票、巴士票网站:Tutu.ru
2020/03/16 全球购物
工厂门卫岗位职责
2013/11/25 职场文书
办公室内勤岗位职责范本
2013/12/09 职场文书
2014年开学第一课活动方案
2014/03/06 职场文书
《孙权劝学》教学反思
2014/04/23 职场文书
餐饮投资计划书
2014/04/25 职场文书
建筑工程质量通病防治方案
2014/06/08 职场文书
机械设备与数控技术专业求职信
2014/08/10 职场文书
官僚主义现象查摆问题整改措施
2014/10/04 职场文书
授权委托书协议书
2014/10/16 职场文书
劳动合同变更协议书范本
2019/04/18 职场文书