yii CActiveForm CHtml组件使用总结

1、首先要说的就是form的使用

[php]  view plain  copy
  1. <?php $form=$this->beginWidget('CActiveForm'array(  
  2.                     'id'=>'license-form',//ajax验证的form id  
  3.                     'htmlOptions' => array(‘class’=>'','enctype'=>'multipart/form-data'),//自定义html元素  
  4.                     'enableClientValidation'=>false,//是否开启客户端验证  
  5.                     'enableAjaxValidation'=>false,//是否开启ajax验证  
  6.                     'clientOptions'=>array(  
  7.                             'validateOnSubmit'=>true,  //提交时是否验证  
  8.                         ),  
  9.                 )); ?>  


结束标记:<?php $this->endWidget(); ?>

当然还可以使用CHtml的方式:

 <?php echo CHtml::beginForm($this->createUrl('/admin‘),'get')?>               

<?php echo CHtml::endForm(); ?>

2、一些常用的基本组件使用示例

输入框textfields:echo $form->textField($model,'title',array('class'=>'ipt-long'));

密码框passwordfields: echo $form->passwordField($model,'password',array('class'=>'loginIn'));

标签label: echo $form->labelEx($model,'email'); 

区域textarea: echo $form->textArea($model,'area',array('class'=>''));

链接link: echo CHtml::link(CHtml::encode('删除'), array('/user'),array('class' => 'confirm'));

按钮button:CHtml::button('关闭',array(οnclick="location.href='<?php echo $this->createUrl('/trade/close');?>'">))

提交按钮submitbutton: echo CHtml::submitButton('下一步',array('class'=>'btn'));

错误信息,红色字体不换行输出:

错误提示error: echo $form->error($model,'password',array('style'=>'color:red;display:inline'));

3、单选按钮radiobuttonlist

<?php echo $form->radioButtonList($model,'cate', array('1'=>'项目','2'=>'技术'),array('separator'=>'&nbsp;'));?>

4、下拉菜单dropdownlist

<?php echo $form->DropDownList($model,'cate',array('1'=>'食品','2'=>'机械') ?>

5、复选框checkbox

<?php echo $form->checkBoxList($model,'cooperation', array('1'=>'合作开发','2'=>'直接购买','3'=>'其他:'),array('separator'=>'&nbsp;'));?>

6、验证码

<?php $this->widget('CCaptcha',array('showRefreshButton'=>true,'buttonLabel'=>'看不清?换一张','clickableImage'=>true,'imageOptions'=>array('alt'=>'点击换图','title'=>'点击换图','style'=>'cursor:pointer'))); ?>

7、日历组件

[php]  view plain  copy
  1. <?php  $this->widget('zii.widgets.jui.CJuiDatePicker',array(  
  2.                                'name' => 'Post[endtime]',  
  3.                                'language'=>'zh_cn',                                                          
  4.                                'options'=>array(    
  5.                                            //'showAnim'=>'fold',    
  6.                                            //'showOn'=>'both',    
  7.                                            //'buttonImage'=>Yii::app()->request->baseUrl.'/images/calendar.gif',    
  8.                                            'maxDate'=>'new Date()',    
  9.                                            //'buttonImageOnly'=>true,    
  10.                                            'dateFormat'=>'yy-mm-dd',    
  11.                                ),    
  12.                                'htmlOptions'=>array(                                  
  13.                                            'style'=>'height:25px',    
  14.                                            'maxlength'=>8,    
  15.                                ),    
  16.                        ));    
  17.                    ?>    



8、编辑器

[php]  view plain  copy
  1. //配置引用ueeditor  
  2.     'controllerMap'=>array(  
  3.         'ueditor'=>array(  
  4.             'class'=>'ext.ueditor.UeditorController',  
  5.             'config'=>array('initialFrameWidth'=>500),  
  6.             'thumbnail'=>false,//是否开启缩略图  
  7.             'watermark'=>'',//水印图片的地址,使用相对路径  
  8.             'locate'=>9,//水印位置,1-9,默认为9在右下角  
  9.             'savePath'=>'xxx',  
  10.             'allowFiles'=>array(  
  11.                     'image' => array('.gif''.png''.jpg''.jpeg'),  
  12.                     'file' => array'.doc' , '.docx' , '.zip' , '.pdf' , '.txt'),  
  13.             ),  
  14.             ),  
  15.     ),  

<?php echo $form->textArea($model,'companyinfo',array('class'=>'editor')); ?>
                    <?php $this->widget('ext.ueditor.UeditorWidget',
                                array(
                                        'id'=>'info',//初始化容器ID
                                        'name'=>'info',//指定ueditor实例的名称
                                )
                            ); ?>
                    <?php echo $form->error($model,'companyinfo'); ?>

显示编辑器提交的内容:

                     <?php
                         $this->beginWidget('CMarkdown', array('purifyOutput'=>true));
                         echo $model->info;
                         $this->endWidget();
                     ?> 

9、yii ajax省市联动的实现

[php]  view plain  copy
  1. <?php echo CHtml::DropDownList('provinceid',$model->provinceid,Area::getProvinceList(),  
  2.                                 array(                  
  3.                                 'ajax' => array(  
  4.                                     'type' => 'POST',  
  5.                                     'url' => $this->createUrl('/area/updatecity'),  
  6.                                     'data' => array('provinceid' => 'js:this.value'),  
  7.                                     'update' => '#cityid'  
  8.                                 ))); ?>  
  9.                             <?php echo CHtml::DropDownList('cityid',$model->cityid,Area::getCityList($model->provinceid)); ?>  
  10.                             <?php echo $form->error($model,'cityid'); ?>  

updatecity中的代码如下,需要三级联动可自行参考添加

[php]  view plain  copy
  1. public function actionUpdateCity()  
  2.     {  
  3.         if (isset($_POST['provinceid'])){  
  4.             $data = Area::getCity(intval($_POST['provinceid']));  
  5.             foreach($data as $value=>$name){  
  6.                 echo CHtml::tag('option'array('value'=>$value),CHtml::encode($name['name']),true);  
  7.             }  
  8.         }else {  
  9.             return array();  
  10.         }  
  11.     }  


10、上传组件

<?php echo $form->fileField($model,'pic');?>    OR   <?php echo CHtml::activeFileField($model,'pic'); ?>  

上传代码如下:

[php]  view plain  copy
  1. //$image = CUploadedFile::getInstanceByName('image');  
  2. $pic = CUploadedFile::getInstance($model'pic');  
  3. if($pic !== null){  
  4.     $pic->saveAs('/image/'.date('Ymd').'/<span><span>'.time().</span><span class="string">'_'</span><span>.rand(0,9999).</span><span class="string">'.'</span><span>.</span><span class="vars">$file</span><span>->extensionName</span></span>);  
  5. }  

model中的上传配置:

[php]  view plain  copy
  1. array('pic''file''allowEmpty'=>false,  
  2.     'types'=>'jpg, jpeg, gif, png',  
  3.     'maxSize'=>1024 * 1024 * 2, // 2M  
  4.     'tooLarge'=>'上传文件超过 2M,无法上传。',  
  5. ),  


显示图片:

<?php echo CHtml::image(Yii::app()->baseUrl.$model->pic,$model->title,array('width'=>'200px','height'=>'150px'));?>
          <?php echo CHtml::link('查看大图',Yii::app()->baseUrl.$model->pic,array('target'=>'_blank'));?>

11、yii的下载

[php]  view plain  copy
  1. $model =xxx::model()->findByPk($id);  
  2.   
  3. $type =$model->filetype;  
  4.   
  5. $content = file_get_contents($model->downpath);  
  6.   
  7. Yii::app()->request->sendFile($model->title.'.'.$model->type,$content);  
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值