2017-08-04 5 views
0

Je suis en train de construire un formulaire où je devrais insérer "Total année facturée" ou "mois par mois facturé" dans la liste déroulante. Voici le code avec l'icône Prepended de glyphicon:Yii2 champs de formulaire dans la liste déroulante ajouté à un autre champ

<?= $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) ?> 

J'essaie d'insérer des champs d'entrée au lieu de JAN FEV MAR mais il ne fonctionne:

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

Les champs jan, feb ecc . sont sur la même table du champ "total_year_billed".

Répondre

0

J'ai résolu le premier problème de division du problème et j'ai ajouté un bouton déroulant séparé. Je préfère un seul champ avec toutes les options, mais tout fonctionne.

Maintenant, la figure de code pour:

<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> 
0

Вот аккуратное решение в 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', 
       ]), 
     ], 
    ], 
]);