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 相关文章推荐
mysql4.1以上版本连接时出现Client does not support authentication protocol问题解决办法
Mar 15 PHP
php中inlcude()性能对比详解
Sep 16 PHP
PHP分多步骤填写发布信息的简单方法实例代码
Sep 23 PHP
php实现把数组按指定的个数分隔
Feb 17 PHP
CI框架中集成CKEditor编辑器的教程
Jun 09 PHP
php递归创建目录的方法
Feb 02 PHP
PHP Try-catch 语句使用技巧
Feb 28 PHP
php连接oracle数据库的方法(测试成功)
May 26 PHP
PHP实现的装箱算法示例
Jun 23 PHP
CI框架附属类用法分析
Dec 26 PHP
PHP实现的多进程控制demo示例
Jul 22 PHP
Yii框架getter与setter方法功能与用法分析
Oct 22 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 获取今日、昨日、上周、本月的起始时间戳和结束时间戳的方法
2013/09/28 PHP
PHP获取一个字符串中间一部分字符的方法
2014/08/19 PHP
PHP实现163邮箱自动发送邮件
2016/03/29 PHP
神奇的代码 通杀各种网站-可随意修改复制页面内容
2008/07/17 Javascript
IE6 fixed的完美解决方案
2011/03/31 Javascript
jQuery EasyUI API 中文文档 - TimeSpinner时间微调器
2011/10/23 Javascript
JavaScript声明变量时为什么要加var关键字
2014/09/29 Javascript
ECMAScript6块级作用域及新变量声明(let)
2015/06/12 Javascript
js阻止移动端页面滚动的两种方法
2017/01/25 Javascript
jQuery基本筛选选择器实例代码
2017/02/06 Javascript
javascript验证香港身份证的格式或真实性
2017/02/07 Javascript
nodejs读写json文件的简单方法(必看)
2017/03/09 NodeJs
JavaScript实现换肤功能
2017/09/15 Javascript
Angularjs之如何在跨域请求中传输Cookie的方法
2018/06/01 Javascript
vue里面使用mui的弹出日期选择插件实例
2018/09/16 Javascript
vant(ZanUi)结合async-validator实现表单验证的方法
2018/12/06 Javascript
Vue 实现把表单form数据 转化成json格式的数据
2019/10/29 Javascript
如何使用JS console.log()技巧提高工作效率
2020/10/14 Javascript
vue+iview实现分页及查询功能
2020/11/17 Vue.js
Scrapy爬虫实例讲解_校花网
2017/10/23 Python
Python数据抓取爬虫代理防封IP方法
2018/12/23 Python
Python实现word2Vec model过程解析
2019/12/16 Python
Pytorch 实现冻结指定卷积层的参数
2020/01/06 Python
Python加速程序运行的方法
2020/07/29 Python
python将字典内容写入json文件的实例代码
2020/08/12 Python
浅析关于Keras的安装(pycharm)和初步理解
2020/10/23 Python
Numpy数组的广播机制的实现
2020/11/03 Python
Python读取图像并显示灰度图的实现
2020/12/01 Python
一份全面的PHP面试问题考卷
2012/07/15 面试题
关于廉洁的广播稿
2014/01/30 职场文书
优秀毕业生求职信
2014/06/05 职场文书
教师辞职书范文
2015/02/26 职场文书
2015小学教师年度工作总结
2015/05/12 职场文书
毕业论文答辩演讲稿
2015/06/23 职场文书
Python列表的索引与切片
2022/04/07 Python