yii2 tab label вставить checkbox

Общие вопросы по использованию второй версии фреймворка. Если не знаете как что-то сделать и это про Yii 2, вам сюда.
Ответить
iamguruman
Сообщения: 237
Зарегистрирован: 2018.05.10, 08:26

yii2 tab label вставить checkbox

Сообщение iamguruman »

У меня есть форма

в форме сделал два таба,

Код: Выделить всё

<?= \yii\bootstrap\Tabs::widget(['items' => [
        [
            'label' => 'Один исполнитель',
            'active' => aGet('person') ? true : false,
            'content' => "<br>".$this->render("_form_responsible_one", ['model' => $model, 'form' => $form])
        ],

        [
            'label' => 'Несколько исполнителей',
            'active' => false,
            'content' => "<br>".$this->render("_form_responsible_multiple", ['model' => $model, 'form' => $form])
        ],
    ]]) ?>
в лейбл таба хочу добавить checkbox, как?

п.с. идея такая... хочу чтобы пользователь ставил галочку на чекбоксе в лейбле таба и с помощью этого буду определять с какого из табов брать значения полей формы
masson
Сообщения: 545
Зарегистрирован: 2012.07.03, 15:59

Re: yii2 tab label вставить checkbox

Сообщение masson »

А событие клика по табу чем не устраивает?
https://getbootstrap.com/docs/3.4/javas ... abs-events
unknownby
Сообщения: 749
Зарегистрирован: 2019.11.05, 16:34
Контактная информация:

Re: yii2 tab label вставить checkbox

Сообщение unknownby »

masson писал(а): 2021.06.02, 12:18 А событие клика по табу чем не устраивает?
https://getbootstrap.com/docs/3.4/javas ... abs-events
Задумка другая у человека ;)
Клик по табу это одно, а поставить чекбокс в табе и отслеживать нажат или нет, другое.
unknownby
Сообщения: 749
Зарегистрирован: 2019.11.05, 16:34
Контактная информация:

Re: yii2 tab label вставить checkbox

Сообщение unknownby »

iamguruman писал(а): 2021.06.01, 23:13 п.с. идея такая... хочу чтобы пользователь ставил галочку на чекбоксе в лейбле таба и с помощью этого буду определять с какого из табов брать значения полей формы
Проблема отображения нажатия в том, что input внутри ссылки вставляется, если через дебагер вынести input на один уровень со ссылкой, то отображается что чекбокс нажали или нет
masson
Сообщения: 545
Зарегистрирован: 2012.07.03, 15:59

Re: yii2 tab label вставить checkbox

Сообщение masson »

unknownby писал(а): 2021.06.02, 14:40
masson писал(а): 2021.06.02, 12:18 А событие клика по табу чем не устраивает?
https://getbootstrap.com/docs/3.4/javas ... abs-events
Задумка другая у человека ;)
Клик по табу это одно, а поставить чекбокс в табе и отслеживать нажат или нет, другое.
У нажатого таба класс active выставляется
unknownby
Сообщения: 749
Зарегистрирован: 2019.11.05, 16:34
Контактная информация:

Re: yii2 tab label вставить checkbox

Сообщение unknownby »

masson писал(а): 2021.06.02, 21:46 У нажатого таба класс active выставляется
И как потом выяснить из какого таба взять информацию для сохранения? Присутствует 10 табов и нужно выбрать 5 штук.
unknownby
Сообщения: 749
Зарегистрирован: 2019.11.05, 16:34
Контактная информация:

Re: yii2 tab label вставить checkbox

Сообщение unknownby »

iamguruman писал(а): 2021.06.01, 23:13 У меня есть форма

в форме сделал два таба,

Код: Выделить всё

<?= \yii\bootstrap\Tabs::widget(['items' => [
        [
            'label' => 'Один исполнитель',
            'active' => aGet('person') ? true : false,
            'content' => "<br>".$this->render("_form_responsible_one", ['model' => $model, 'form' => $form])
        ],

        [
            'label' => 'Несколько исполнителей',
            'active' => false,
            'content' => "<br>".$this->render("_form_responsible_multiple", ['model' => $model, 'form' => $form])
        ],
    ]]) ?>
в лейбл таба хочу добавить checkbox, как?

п.с. идея такая... хочу чтобы пользователь ставил галочку на чекбоксе в лейбле таба и с помощью этого буду определять с какого из табов брать значения полей формы
Для реализации задумки нужно переписать виджет
Внутри виджета, есть метод renderItems() в котором составлен заголовок и всё что будет в label пойдёт внутрь ссылки.

Код: Выделить всё

$header = Html::a($label, '#' . $options['id'], $linkOptions);
Если переписать составление переменной $header

Код: Выделить всё

if(isset($item['checkbox'])){
	$checkbox = Html::checkbox($item['checkbox']);
} else {
	$checkbox = '';
}
$header = $checkbox . Html::a($label, '#' . $options['id'], $linkOptions);
и в табе прописать

Код: Выделить всё

<?= \yii\bootstrap\Tabs::widget(['items' => [
        [
            'label' => 'Один исполнитель',
            'active' => aGet('person') ? true : false,
            'content' => "<br>".$this->render("_form_responsible_one", ['model' => $model, 'form' => $form]),
            'checkbox' => 'checkbox_one',
        ],

        [
            'label' => 'Несколько исполнителей',
            'active' => false,
            'content' => "<br>".$this->render("_form_responsible_multiple", ['model' => $model, 'form' => $form]),
            'checkbox' => 'checkbox_multiple',
        ],
    ]]) ?>
То выдаст два чекбокса с name="checkbox_one" и name="checkbox_multiple"
Останется только вёрстка, чтобы чекбокс хорошо ложился со ссылкой таба.
Ответить