下拉列表中的 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',
]),
],
],
]);
我正在构建一个表单,我应该在下拉列表中插入 "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',
]),
],
],
]);