PHP7中文手册2018 带注释 最新chm版
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’=>’ ’, //间隔符
'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自动会从模型类中读取属性值,然后在组件上显示出来。所以,如果你想在页面渲染前初始化一些组件的默认值,那么你可以直接初始化模型类就可以了。
转载请注明:谷谷点程序 » yii radioButtonList 单选 复选的生成方法