pinsn 2012-05-30 11:09:38 3214次浏览 7条回复 0 0 0

echo $form->dropDownList($model,'status',A::model()->StatusArray);

StatusArray是模型

public function getStatusArray(){
    return array('0'=>'关闭','1'=>'处理中','2'=>'打回');
}

请问根据从数据库取得状态值,怎么判断selected?

  • 回复于 2012-05-30 13:42 举报

    也许,可能会帮到你,代码中的数字3,你可以换成从数据库里面读取出来的数据

    <?php 
    echo $form->dropDownList($model,'country_id',$countries_array,array('empty' => '',
         'options'=>array(3=>array('selected'=>'selected'))
     ));
    

    发现我回答完这个帖子,我就是金牌会员啦~~

  • 回复于 2012-05-30 13:58 举报

    如果是数据库读出来的值在 A::model()->StatusArray 里,默认是选中的($form->dropDownList($model,'status',A::model()->StatusArray);

  • 回复于 2012-05-30 14:03 举报

    没太看明白你的意思。。。
    是要这样的效果么:echo $form->dropDownList($model,'status',StatusArray::model()->getStatusArray());
    getStatusArray()这个方法是在StatusArray里的吧?

  • 回复于 2012-05-30 14:37 举报

    我研究了好久,可能的意思是,A::model()->StatusArray的数据是从数据库来的,然后针对每个不同的“对象”,可能的值不是一样的。就拿他给的例子说,A::model()->StatusArray的三个情况'关闭','处理中','打回',ABC作为一个对象,ABC最最开始的状态就是'打回'~~~~然而,dropDownList显示的是默认的第一个'关闭'.....

    额,这个是我的理解.....

    好吧,其实我也不知道我在说啥了。

  • 回复于 2012-05-30 16:23 举报

    大致明白你的意思了,你是想让dropDownList默认显示当前对象的状态,是吧?
    echo $form->dropDownList($model,'status',StatusArray::model()->getStatusArray());
    在上面这个例子中,默认选哪个是根据$model来定的,所以,控制器分配的时候 只要$model是某一条记录的AR对象就可以了,它会根据当前model的status去选择默认的selected
    不知道我这样描述的是不是您想要的。。。。

  • 回复于 2012-05-30 16:31 举报

    就是这个,我没有表达清楚,连累大家了

  • 回复于 2012-05-30 16:41 举报

    谢谢你哈。嘿嘿嘿嘿。

您需要登录后才可以回复。登录 | 立即注册