2019-03-11 13:07:31 2067次浏览 4条回答 0 悬赏 10 金钱

上代码:

$model->status =1 ;   //给默认值
echo $form->field($model, 'status')->dropDownList(\common\components\G_ARRAY::$arrNormalState)

视图显示:
VHVX@T$Y$6X2QAB~5RB2.png

如图所示,html代码上显示,value是1的选项被selected,但是视图上却把value值为2的选项放到了第一位。百思不得其解,默认值是赋值成功了,但是视图没显示出来。请高手指教,为何会出现这种情况。
PS:dropDownList里面的参数是个数组:

public static $arrNormalState = [
    1 => "Enabled",2 => "Disabled"
];
补充于 2019-03-11 13:08

求大神帮忙解答一下,我这个赋值的方式应该是没错的才对吧

补充于 2019-03-11 13:13

VHVX@T$Y$6X2QAB~5RB2.png

补充于 2019-03-11 13:14

不知道为什么图片显示不出来。。。
VHVX@T$Y$6X2QAB~5RB2.png

补充于 2019-03-11 13:17

html代码:
<select > <option value="1" selected>Enabled</option> <option value="2">Disabled</option> </select>

value值为1选项有selected特性,但是我的下拉框默认是Disable是第一位的。相当于赋值的默认值没用

补充于 2019-03-11 18:24

![_@C6QGLU5)84[[V%BFPRN2Q.png](/uploads/images/201903/11182412747.png "_@C6QGLU5)84[[V%BFPRN2Q.png")

补充于 2019-03-12 09:14

![_@C6QGLU5)84[[V%BFPRN2Q.png](/uploads/images/201903/12091442617.png "_@C6QGLU5)84[[V%BFPRN2Q.png")

补充于 2019-03-12 11:15

`

public static function listBox($name, $selection = null, $items = [], $options = [])

参数及使用:
1
$name:

设置select的name字符串,这个用来设置生成的select标签的name值

2
$selection:

设置select中哪位为选中字符串或者数组,这个用来设置哪个option为选中状态,因为select只能有一个option为选中。所以如果为数组的话后面匹配的值会覆盖前面匹配的值。

`

目前怀疑是要用到这个
$selection 属性吗,我用model赋值,和用options方式赋值都失败了
1、$model->status =2; 2、4'=>['selected'=>'selected']]

补充于 2019-03-12 13:12

最后补充:
功能已经完成了,是$model初始值的问题,当$model初始值没问题的时候,下拉框是正常的,可以区分enabled和disabled。但是我这个问题还是不大懂,为什么我重新给它赋值就没用呢?就算初始的$model为空,那我下面的赋值也成功了,为什么就是不能正常显示,百思不得其解

最佳答案

  • 汤亚兵 发布于 2019-03-11 17:24 举报

    $helpModel::COURSE_W_C_S,['options'=>['1'=>['Selected'=>true]]]

    3 条回复
    回复于 2019-03-11 18:24 回复

    还是不行啊, echo $form->field($model, 'status')->dropDownList(\common\components\G_ARRAY::$arrNormalState,['options' => ['2' => ['Selected' => 'true']]]); 你这种写法我试过的,还是不可以,下面给图片,你看看

    回复于 2019-03-11 19:52 回复

    图片看不了

    回复于 2019-03-12 09:16 回复

    它这个编辑有点问题的吧,图片总是显示不出来,其实图片和之前的图片差不多,就是某个选项是select="true"的状态,但是还没有被默认选中,不知道这是为什么

  • 回答于 2019-03-11 17:24 举报
    dropDownList($helpModel::COURSE_W_C_S,['options'=>['1'=>['Selected'=>true]]])
    
  • 回答于 2019-03-12 09:20 举报

    你的赋值语句没有问题,可能是你的前端使用js对下拉框又做了新的操作了,你检查一下

    1 条回复
    回复于 2019-03-12 10:01 回复

    检查了一下,这个下拉框是直接用activeForm生成出来的,也没加特别的JS事件啊,还有可能是其他的原因吗

  • 回答于 2019-03-13 10:00 举报

    dropDownList是干什么的啊?

    1 条回复
    回复于 2019-03-13 14:32 回复

    yii自带的activeForm组件中的下拉框

您需要登录后才可以回答。登录 | 立即注册
ljfphp
助理

ljfphp

注册时间:2019-03-11
最后登录:2019-04-02
在线时长:1小时16分
  • 粉丝0
  • 金钱55
  • 威望10
  • 积分165

热门问题