@usmian

Возможно ли в каждую плашку виджета yii2 collapse работающий radioList?

Есть задача реализовать в каждой плашке виджета yii2 collapse radioList так чтобы при клике на плашку она сворачивалась/разворачивалась, а при выборе radio button соответственно передавалось выбранное значение.
Примерно вот так:
7f03d36ee3c1fb0f0f0736c2a8c4079623f8113c

Дошел до отображения в radioList label коллапса , но так конечно же не работает. Возможно ли как-то вытащить на radioList поверх плашки и оставить функционал collapse если кликать вне radio button?
$check = $form->field($tmpModel, "[$n]value",
        ['template' => '<div class="col-sx-9 col-md-9" style="float:right">{label}{input}</div>',
            'labelOptions' => ['class' => 'col-md-3 control-label', 'style' => "float:right"]])
        ->radioList([1 => 'Да', 0 => 'Нет'], ['style' => 'float:right;'])->label('наличие в точке:', ['style' => 'font-size:12px']);

    $collapseItems[] = [
        'label' => $category->cat_name . ' ' . $check,
        'content' =>
            $fields,
        'contentOptions' => [
        ],
        'options' => ['style' => 'margin-top: 20px']
    ];
}
echo Collapse::widget([
    'id' => 'anket-tmp',
    'items' => $collapseItems,
    'encodeLabels' => false
]);
  • Вопрос задан
  • 244 просмотра
Пригласить эксперта
Ответы на вопрос 2
proudmore
@proudmore
Я бы посоветовал вам поискать js пакеты, которые умеют делать то, что вам нужно. И реализовывать с их использованием. Потом, если захотите, можете выделить это в отдельный виджет.
Ответ написан
Комментировать
@usmian Автор вопроса
Если кому то надо - решил вопрос так: создал свой виджет extends Collapse, передал в него:
$check = $form->field($tmpModel, "[$n]value",
        ['template' => '<div class="col-sx-9 col-md-9" style="float:right">{label}{input}</div>',
            'labelOptions' => ['class' => 'col-md-3 control-label', 'style' => "float:right"]])
        ->radioList([1 => 'Да', 0 => 'Нет'], ['style' => 'float:right;'])->label('наличие в точке:', ['style' => 'font-size:12px']);

 $collapseItems[] = [
        'label' => $category->cat_name ,
        <b>'button'=>$check,</b>
        'content' =>
            $fields,
        'contentOptions' => [
        ],
        'options' => ['style' => 'margin-top: 20px; padding-bottom:35px;']
    ];

в сам виджет:
echo CollapseWithRadioButton::widget([
    'id' => 'anket-tmp',
    'items' => $collapseItems,
    'encodeLabels' => false
]);

в виджете, отнаследованном от Collapse прилепил в методах рендера содержимого нужные мне radio button.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы