我有一个名为 Table 的表,它具有id
和name
作为属性。
对于表中的每个条目,我想生成一个复选框。
我怎样才能做到这一点?
我正在使用 Yii-Boostrap 插件,我希望我需要使用这样的东西:
foreach(...)
echo $form->checkBoxRow($model, 'name');
我从Yii-Bootstrap 文档中得到的。
我有一个名为 Table 的表,它具有id
和name
作为属性。
对于表中的每个条目,我想生成一个复选框。
我怎样才能做到这一点?
我正在使用 Yii-Boostrap 插件,我希望我需要使用这样的东西:
foreach(...)
echo $form->checkBoxRow($model, 'name');
我从Yii-Bootstrap 文档中得到的。
试试这个简单的
在此进行预检查时,只需将数组作为第二个参数传递,如下所示
<?$select=array('2','3');?>
<?php echo CHtml::checkBoxList(
'TableValues',
'$select',//you can pass the array here which you want to be pre checked
CHtml::listData(Table::model()->findAll(),'id','name'),
array('checkAll'=>'Select all tasks', 'checkAllLast'=>true)
); ?>
您可以使用在控制器中获取选定的复选框值
print_r($_POST['TableValues']);
更新
为此,要进行预检查,您必须将数组分配给模型属性,如下所示
<?php $model->modelAttributename=array('3','5')//respective checked values as of yours
<?php echo $form->checkBoxList(
$model,
'modelAttributename',
CHtml::listData(Table::model()->findAll(),'id','name'),
array('checkAll'=>'Select all tasks', 'checkAllLast'=>true)
); ?>
您应该看到您的结果数组表单 sql 查询,并查看如何从结果数组中访问您想要的任何字符串,然后创建包含名称列表的字符串数组。例如,您的结果查询是 $result["name"] = array("a","b","c");
<?php /** @var BootActiveForm $form */
$form = $this->beginWidget('bootstrap.widgets.TbActiveForm', array(
'id'=>'horizontalForm',
'type'=>'horizontal',
));
?>
<fieldset>
<legend>Legend</legend>
<?php
$result["name"] = array("a","b","c");
echo $form->checkBoxListRow($model, 'checkboxes', $result["name"]);
?>
</fieldset>
检查这个例子:
图书型号:
'authors' => array(self::MANY_MANY, 'Author', 'authorbook(book_id,author_id)'),
作者型号:
'books' => array(self::MANY_MANY, 'Book', 'authorbook(author_id, book_id)'),
表单中的复选框列表:
$books = CHtml::listData(Book::model()->findAll(), 'id', 'name');
$selected_keys = array_keys(CHtml::listData( $model->books, 'id' , 'id'));
echo CHtml::checkBoxList('Author[books][]', $selected_keys, $books);