微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

php – 使用TbActiveForm选择列表中的动态选项

我在控制器中有以下代码,

$model=new Guessgame('search');
$model->unsetAttributes();  // clear any default values
if(isset($_GET['Guessgame']))
    $model->attributes=$_GET['Guessgame'];
    $this->render('admin',array(
        'model'=>$model,
));

在视图文件中,

<?PHP $form=$this->beginWidget('bootstrap.widgets.TbActiveForm',array(
'id'=>'project1-form',
'enableAjaxValidation'=>false,

'htmlOptions' => array('enctype' => 'multipart/form-data','class' => 'well'),
'type'                   => 'horizontal',
     'enableAjaxValidation'   => false,
    'enableClientValidation' => true,
    'clientOptions'          => array(
        'validateOnSubmit' => true,
    )
)); ?>
<p class="help-block">Fields with <span class="required">*</span> are required.</p>

<?PHP echo $form->errorSummary($model); ?>
<?PHP echo $form->dropDownListRow($model,'type',array('logo'=>'logo','apaters'=>'Apaters','text'=>'Text'),array('class'=>'span5','maxlength'=>255)); ?>

上面的示例列表项是静态的(徽标,分隔符和文本.

但我想从数据库获取动态值.请帮我.

解决方法:

你可以在模型中写下函数来从db获取

function getValues(){

    $crit = new CDbCriteria();
    $crit->select = 'name';
    $crit->order = 'name';
    $data = YourModel::model()->findAll($crit);
    $result = CHtml::listData($data,'id','name');
    return $result;

}

在视野中

<?PHP 
    echo $form->dropDownListRow($model, 'type', YourModel::model()->getValues(), array('class'=>'span5', 'maxlength'=>255)); 
?>

希望这样可以解决您的问题

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐