【问题标题】:Yii2 dropdown list selected valueYii2下拉列表选择值
【发布时间】:2019-06-17 19:41:57
【问题描述】:

我不明白下拉列表的工作原理。我想从下拉列表中获取选定的值。

我的代码如下:

<?php $form = ActiveForm::begin(['options' => ['enctype' => 'multipart/form-data']]) ?>
     <?= $form->field($model1, 'test')->dropDownList($items)->label(false);?>

    <button>Submit</button>
    <?php ActiveForm::end() ?>

在哪里$items =[‘A’,‘B’,‘C’…‘Z’];

这个默认显示的值是‘A’,我想改变这个值。

我试过$model1-&gt;test,但这不是我选择的值。

谢谢!

【问题讨论】:

    标签: yii2


    【解决方案1】:

    如果需要提示:

    <?= $form->field($model, 'test')->dropDownList($items
        , 'prompt' => ' -- Select Value --']) ?>
    

    如果另一种情况 假设您选择从数组中选择“B”:

    $items =[‘A’,‘B’,‘C’…‘Z’];
    

    'B' 的键是 1,所以你需要这样做:

    <?= $form->field($model, 'test')->dropDownList($items)
    ,['options' => [1 => ['Selected'=>'selected']]
    , 'prompt' => ' -- Select Value --']) ?>
    

    【讨论】:

      【解决方案2】:

      在ActiveForm 中,您的模型字段值被选择 作为值。
      在Html中,有另一个属性可以设置默认值

      您可以在 HTML 中为给定的模型属性使用 activeDropDownList()。

      Yii2 ActiveForm 中的语法:

      <?= Html::field($yourModel, 'name_field_db')->dropDownList(
              [items-array of data],
              [options]
          ); ?>
      

      HTML 语法:

      <?= Html::dropDownList($name, $selection = null, $items = [], $options = []) ?>
      

      数据作为数组:

      <?= $form->field($model, 'name')->dropDownList(['1' => 'on', '0' => 'off'],['prompt'=>'Select Option']); ?>
      

      通过ArrayHelper::map在下拉列表中显示数据库数据。

          // get fields from database for make itemList
          $yourModels=model::find()->all(); // Query(by Active record or Query Builder or ..)
      
          $itemList=ArrayHelper::map($yourModels,'filed_id','filed-name');
      
          echo $form->field($newModel, 'filed-name')->dropDownList($itemList,['prompt'=>'Please select']);
      

      可用于 ActiveForm:$model-&gt;field = $model-&gt;isNewRecord? 'value' : $model-&gt;field;

      【讨论】:

        【解决方案3】:

        使用以下代码,您应该将 ModelName 更改为您的模型类名称,它会起作用。

        <?= $form->field($model, 'test')
              ->dropDownList(ArrayHelper::map(app\models\ModelName::find()->all(),'id','test'))
         ?>
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2016-12-13
          相关资源
          最近更新 更多