YII插件

dropDownList:

Yii中可以采用CHtml类来实现,也可以用CActiveForm来实现。
一、用CHtml来实现。
VIEW中实现:

<?php
echo CHtml::dropDownList(‘country_id‘,‘‘, array(1=>‘USA‘,7=>‘France‘,3=>‘Japan‘),
array(
‘ajax‘ => array(
‘type‘=>‘POST‘, //request type
‘url‘=>Yii::app()->createUrl(‘project/dynamiccities‘),
‘update‘=>‘#city_id‘,
‘data‘=>array(Yii::app()->request->csrfTokenName=>Yii::app()->request->getCsrfToken(),‘country_id‘=>‘js $("#country_id").val()‘)
)));

echo CHtml::dropDownList(‘city_id‘,‘‘, array());

?>

controller中实现:

public function actionDynamiccities()
{
  $data=Parts::model()->findAll(‘prent_id=:prent_id‘,array(‘:prent_id‘=>(int) $_POST[‘country_id‘]));

  $data=CHtml::listData($data,‘id‘,‘name‘);
  foreach($data as $value=>$name)
  {
    echo CHtml::tag(‘option‘,
    array(‘value‘=>$value),CHtml::encode($name),true);
  }
}

二、用CActiveForm来实现
在VIEW中实现:

<?php echo $form->dropDownList($model,‘province_id‘,$provinceList(这个值可以通过render传递到页面),array(
  ‘empty‘=>‘-请选择-‘,
  ‘ajax‘=>array(
  //指定请求地址
  ‘url‘=>Yii::app()->createUrl(‘site/dynamicCity‘),
  //请求数据
  ‘data‘=>array(‘pid‘=>‘js:this.value‘),
  //操作元素
  ‘update‘=>‘#SosInfo_city_id‘,(注意这个update的值很容易弄错,它由两部分组成:模型+ID,模型->是指本CActiveForm所承载的model名称)
  ),
)); ?>
<?php
    echo $form->dropDownList($model,‘city_id‘,City::model()->getCityList($model->province_id),array(‘empty‘=>‘-请选择-‘));
?>

如果是静态的:
$form->dropDownList($model, ‘field_name‘, array(1=>‘test1‘, 2=>‘test2‘))
如果是动态的:
$form->dropDownList( $model, ‘name‘, CHtml::listData( modelname::model()->findAll(), ‘id‘, ‘name‘) );

$form是你view中生成的form, 根据你生成form名字不同,修改它,$model是你对应的模型的名字,也是你自己定, name是和你model数据表中字段的名字一致就行,modelname是模型对应的类名,比如说你的是User,那这里就是 UserRole::model()->findAll()。id和name是你要去列表的那个表中字段,第一个是将作为option的 value,第二个显示名字。

典型应用场景:
创建user时,需要选择user的角色,有个表专门定义user的角色,表名是UserRole,User这个表中有一个外键role,它的值是UserRole的主键,UserRole的主键是id,另外一个字段是name,我们将显示给用户。
那么上面的哪一行代码变成:

$form->dropDownList( $model, ‘name‘, CHtml::listData( UserRole::model()->findAll(), ‘id‘, ‘name‘) );

yii jquery折叠、弹对话框、拖拽、滑动条、ol和ul列表、局部内容切换

 <?php Yii::app()->clientScript->registerCoreScript(‘jquery‘);?>

<?php
//yii折叠效果(CJuiAccordion)
$this->widget(‘zii.widgets.jui.CJuiAccordion‘, array(
     ‘panels‘=>array(
         ‘分类1‘=>‘分类1的内容‘,
         ‘分类2‘=>‘分类2的内容‘,
         // 分类可以渲染一个页面,例如分类3
         //‘分类3‘=>$this->renderPartial(‘_partial‘,null,true),
     ),
     ‘options‘=>array(
         ‘animated‘=>‘bounceslide‘,
     ),
 ));
?>

<?php
//按钮加js弹框提示
  $this->widget(‘zii.widgets.jui.CJuiButton‘,
        array(
            ‘name‘=>‘button‘,
            ‘caption‘=>‘提交‘,
            ‘value‘=>‘asd‘,
            ‘onclick‘=>‘js:function(){alert("提交成功!"); this.blur(); return false;}‘,
        )
  );
?>

<?php
//谈对话框
$this->beginWidget(‘zii.widgets.jui.CJuiDialog‘, array(
  ‘id‘=>‘mydialog‘,
  // additional javascript options for the dialog plugin
  ‘options‘=>array(
    ‘title‘=>‘对话框‘,
    ‘autoOpen‘=>false,
  ),
));
    //输出弹出框的内容
    //echo $this->renderPartial(‘_form‘,null,true);

$this->endWidget(‘zii.widget.jui.CJuiDialog‘);

//打开对话框的链接
echo CHtml::link(‘登录‘, ‘#‘, array(
 ‘onclick‘=>‘$("#mydialog").dialog("open"); return false;‘,
));
?>

<?php
//拖拽
 $this->beginWidget(‘zii.widgets.jui.CJuiDraggable‘, array(
     // additional javascript options for the draggable plugin
     ‘options‘=>array(
         ‘scope‘=>‘myScope‘,
     ),
 ));
     echo ‘拖拽的内容!‘;
 $this->endWidget();
?>

<?php
//ol列表
  $this->widget(‘zii.widgets.jui.CJuiSelectable‘, array(
      ‘items‘=>array(
          ‘id1‘=>‘Item 1‘,
          ‘id2‘=>‘Item 2‘,
          ‘id3‘=>‘Item 3‘,
      ),
      // additional javascript options for the selectable plugin
      ‘options‘=>array(
          ‘delay‘=>‘300‘,
      ),
  ));
//ul列表
  $this->widget(‘zii.widgets.jui.CJuiSortable‘, array(
      ‘items‘=>array(
          ‘id1‘=>‘Item 1‘,
          ‘id2‘=>‘Item 2‘,
          ‘id3‘=>‘Item 3‘,
      ),
      // additional javascript options for the accordion plugin
      ‘options‘=>array(
          ‘delay‘=>‘300‘,
      ),
  ));
?>

<?php
//滑动条
  $this->widget(‘zii.widgets.jui.CJuiSlider‘, array(
      ‘value‘=>37,
      // additional javascript options for the slider plugin
      ‘options‘=>array(
          ‘min‘=>10,
          ‘max‘=>50,
      ),
      ‘htmlOptions‘=>array(
          ‘style‘=>‘height:20px;‘
      ),
  ));
?>

<?php
//局部内容切换
  $this->widget(‘zii.widgets.jui.CJuiTabs‘, array(
      ‘tabs‘=>array(
          ‘分类1‘=>‘分类1‘,
          ‘分类2‘=>array(‘content‘=>‘分类2‘, ‘id‘=>‘tab2‘),
          //‘分类3‘=>$this->render(‘_form‘,null,true),//渲染一个页面
          // panel 3 contains the content rendered by a partial view
          //‘AjaxTab‘=>array(‘ajax‘=>$ajaxUrl),
      ),
      // additional javascript options for the tabs plugin
      ‘options‘=>array(
          ‘collapsible‘=>true,
      ),
  ));
?>

YII插件

时间: 2024-07-30 08:46:36

YII插件的相关文章

yii2

yii2框架官方说明文档 http://www.yiiframework.com/doc/guide/2.0/zh_cn/caching.page yii2创建您的第一个application应用 http://www.yiiframework.com/doc/guide/2.0/zh_cn/quickstart.first-app 1 MVC架构 1.1处理流程 一个Web请求在Yii内部的执行流程如下图所示: 1.2组件角色 组件名 角色与责任 index.php 入口脚本.创建Applic

yii第三方插件snoopy配置

首先.把snoopy类放到protected\extensions\snoopy\目录下. 其次.在yii配置文件main.php里配置import扩展进来. 'import'=>array( 'application.extensions.*', ), 然后在一个controller类文件的開始,增加下面行:require_once('snoopy/Snoopy.class.php'); 最后直接实例化对象就ok了 $snoopy = new Snoopy; $snoopy->fetch($

yii框架的调试插件yii-debug-toolbar

1 , 下载地址 https://github.com/malyshev/yii-debug-toolbar.git 2 , yii框架配置 3 , 更改main.php文件 'log'=>array( 'class'=>'CLogRouter', 'routes'=>array( array(         'class'=>'ext.yii-debug-toolbar.YiiDebugToolbarRoute', ), // uncomment the following t

Yii 添加Input时间插件

1.首先引入时间组件的JS文件,组件可以在网上下载到没有的可以到网上去下载 <script language="javascript" type="text/javascript" src="/common/DatePicker/WdatePicker.js"></script> 2.input代码如下: <div class="control-group"> <label> &

yii框架中应用jquery表单验证插件

效果图: 视图层: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en"><head>  

Yii调试插件yii-debug-toolbar的使用

yii-debug-toolbar 下载地址 yii-debug-toolbar下载 配置方法 下载完成后将文件拖至\project\protected\extensions目录下,解压到当前文件夹: db配置 // db配置添加enableProfiling与enableParamLogging参数: 'db'=>array( 'connectionString' => 'mysql:host=localhost;dbname=yiidemo', 'emulatePrepare' =>

php的yii框架下开发环境xampp,vim,xdebug,DBGp的搭建

php的yii框架下开发环境xampp,vim,xdebug,DBGp的搭建 选择Linux桌面环境Deepin2014.1下开发网站的理由很简单,能截图,有搜狗输入法,可以WPS文档记录,终端下复制粘贴很容易,相比ubuntu,fedora死机次数少了,对,就是不用折腾,自带的. 先说vim和DBGp插件. Deepin2014.1简体中文,自带的vim7.4版本,很多配置已经很适合大陆的人使用了,比如Php和Python的调试支持等,不需要重新编译了.可以节省不少步骤.这里提供一个vim的配

yii advanced的安装

这里使用composer进行安装(请确保你已经安装过composer),我们打开yii中文网站,官网说明如下 通过 Composer 安装 这是安装Yii2.0的首选方法.如果你还没有安装Composer,你可以按照这里的说明进行安装. 安装完Composer,运行下面的命令来安装Composer Asset插件: php composer.phar global require "fxp/composer-asset-plugin:^1.2.0" 现在选择的应用程序模板之一,开始安装

Yii源码阅读笔记(二十六)

Application 类中设置路径的方法和调用ServiceLocator(服务定位器)加载运行时的组件的方法注释: 1 /** 2 * Handles the specified request. 3 * 处理指定的请求--抽象方法 4 * This method should return an instance of [[Response]] or its child class 5 * which represents the handling result of the reques