下拉列表中的 Yii2 表单字段附加到另一个字段

Yii2 form fields in dropdown appended to another field

我正在构建一个表单,我应该在下拉列表中插入 "Total year billed" 或 "month by month billed"。 这是带有前缀字形图标的代码:

<?= $form->field($model, "total_year_billed" , ['template' => '
                       <div class="input-group ">
                      <span class="input-group-addon">
                      <span class="glyphicon glyphicon-euro"></span>
                      </span>
                      {input}
                      <span class="input-group-addon">
                      <div class="dropdown">
                      <a data-toggle="dropdown" href="#" >trim</a>
                       <ul class="dropdown-menu">
                       <li>JAN</li>
                       <li>FEB</li>
                       <li>MAR</li>
                       </ul>
                       </div> 
                      </span>
                      </div>
                      {error}{hint}'])->textInput(['maxlength' => true])->label(false) ?>

我正在尝试插入输入字段而不是 JAN FEB MAR,但它不起作用:

<?= $form->field($model, "jan")->textInput(['maxlength' => true])->label(false) ?>

字段 1 月、2 月 ecc。在 "total_year_billed" 字段的相同 table 上。

我解决了拆分第一个输入字段并添加单独的下拉按钮的问题。 我宁愿只有一个字段包含所有选项,但一切正常。

现在的代码图是这样的:

<div class="col-sm-3">
  <?= $form->field($model, "total_year_billed" , ['template' => '
  <div class="input-group ">
  <div class="input-group ">
  <span class="input-group-addon">
  <span class="glyphicon glyphicon-euro"></span>
  </span>
  {input}                      
  </div>
  {error}{hint}'])->textInput(['maxlength' => true])->label(false) ?> 
</div>
    <!-- begin of dropdown fields-->
    <div class="col-sm-3">
      <div class = "btn-group">
        <button type = "button" class = "btn btn-default">Monthly-billed</button>
        <button type = "button" class = "btn btn-default dropdown-toggle" data-toggle = "dropdown">
          <span class = "caret"></span>
          <span class = "sr-only">Toggle Dropdown</span>
        </button>
          <ul class = "dropdown-menu" role = "menu">
            <li>
              <?= $form->field($model, "jan" , ['template' => '
              <div class="input-group ">
              <span class="input-group-addon">
              Jan 
              <span class="glyphicon glyphicon-euro"></span>
              </span>
              {input}                      
              </div>
              {error}{hint}'])->textInput(['maxlength' => true, 'value' => 0])->label(false) ?>
             </li>
            <li>
              <?= $form->field($model, "feb" , ['template' => '
              <div class="input-group ">
              <span class="input-group-addon">
              Feb 
              <span class="glyphicon glyphicon-euro"></span>
              </span>
              {input}                      
              </div>
              {error}{hint}'])->textInput(['maxlength' => true,'value' => 0])->label(false) ?>
            </li>
          </ul>
      </div>
    </div> 

这是一个巧妙的 PHP 风格的解决方案:

use kartik\form\ActiveForm;

...

echo $form->field($model, 'cost', [
    'addon' => [
        'prepend' => [
            'asButton' => true,
            'content' => Html::activeDropDownList($model, 'cost_condition', DeliveryTypeHelper::getList(), [
                    'class' => 'input-group-selected btn btn-default dropdown-toggle',
                ]),
        ],
    ],
]);