支付宝赞助帐号:service@kuitao8.com 

yii radioButtonList 单选 复选的生成方法

Created2014-12-09   Views 6775    Author 懒人程序
CActiveForm讲解

 

CActiveForm提供了一些方法,这些方法能够方便的去创建一个与数据模型相关联的Form表单。CActiveForm继承自CWidget,所以他需要实现CWidget的init() 和 run() 方法,同时它也实现了一些自己的封装方法。CActiveForm很重要的一个特性就是它支持Ajax校验。我们可以设置CActiveForm的enableAjaxValidation属性为ture来启动Ajax校验。例如,当用户在input框中输入一些值后就会触发Ajax校验。CActiveForm会向服务器提交Ajax请求,用来校验用户当前输入的值。服务器的校验一般是调用模型类Model的validate()方法。如果校验失败,相对应的错误信息将会被返回并显示给用户。即使用户在浏览器禁用javascript,他也会通过整个页面的提交自动回滚到传统的页面验证。

 

 

1:radioButtonList  单选按钮

 

这是一个radio集合组件。使用代码:

 

<?php echo
$form->radioButtonList($model,’radioButtonList’,

 

       array(’1′=>’Male’,’0′=>’Female’),

 

       array(

            ‘separator’=>’&nbsp;’,      //间隔符

             'labelOptions’=>array(

                ‘class’=>’radiolabel’,  //设置类

                 'style'=>'display:inline;color:red',  //设置css样式

            ))

 

)?>

 

Yii框架封装的元素集合组件大致为4个参数:

 

$model,$property,$data,$htmlOptios

$htmlOptions:附加的HTML选项。 选项将会应用于每个单选按钮上,下面这些特定的选项是被认可的:

  • template: 字符串,指定如何渲染每个复选框。 默认为"{input} {label}", 其中"{input}"将被生成的单选按钮标签取代, 而"{label}"会替换为相应的复选框标签的label。

  • separator: 字符串,分隔生成的单选按钮的字符串。默认为一个新行()

  • labelOptions: 数组, 指定为列表中的每个标签渲染的附加的HTML属性。

 

前面两个参数是我们关联模型类和指定的属性。第三个参数是一个数组,他是元素集合组件的数据来源,上面的代码中配置了两个数组元素,则会对应生成两个radio,radio的值为1或者0,radio的标签为Male或者Female。Yii默认将两个radio之间使用<br/>间隔,即两个radio不在同一行上,我们可以使用separator属性更改其间隔方式,这里我们使用空格符来间隔两个radio,这样他们显示在同一行上。另外在同一个radio中,其标签和实体也是换行的,原因在于标签<label>会换行,我们可以给label标签添加CSS样式,改变其display值为inline将其与radio实体排列在一行。

 

radioButtonList对应模型类中的属性值不是数组,只是一个单一数值或者字符而已,虽然他是一个集合组件,但是他是单选的,所以最终只有一个单一值提交服务器端。

 

另外值得注意的是,Yii封装的这些组件的初始值不能够在标签中设置,Yii自动会从模型类中读取属性值,然后在组件上显示出来。所以,如果你想在页面渲染前初始化一些组件的默认值,那么你可以直接初始化模型类就可以了。

上一篇: dede 导航 {dede:channelArtlist row=6}
下一篇: php查看运行的效率时间
支持键盘 ← →

邮件订阅

订阅我们的精彩内容