Yii2 не работает скрипт jQuery в форме?

Всем здрасте, нужна помощь! Делаю рабочий график клиента, во VIEW в форме есть div и я пытаюсь с помощью jquery прятать определенные блоки: Выходные - то прячется все и остается только кнопки сохранить или отмена, или наоборот когда стоит Рабочий день то выбирается рабочие время и еще с низу можно поставить чекбокс и выбрать перерыв, и после нажатия на чекбокс появляется div блок с выбором времени на перерыв.

Внешний вид рабочего графика
65da78dfbd694e6dbb895f813404d147.png

Рабочий вариант первой формы
8f55336004a24f3493fb75c24295c0e0.png
тут срабатывает скрипт, прячется время
b8b6200e2fe545008bb68e84ec5b4b59.png
тут тоже срабатывает скрипт, когда нажал на чекбокс, то появляется выбор времени для перерыва
f20590d09b7f4e92a341275cf19507ba.png

Другая форма и не работет сам скрипт
b7ecc808645346ebae8d1412f72b7c2e.png

Сам jquery
$(function () {
$('#hidden_work_time').show();
$('#type').change(function () {
    if ($('#type').val() == '2') {
        $('#hidden_work_time').hide();
    } else {
        $('#hidden_work_time').show();
    }
});


и сам вид во view
<table class="table">
<tr>
    <td>День</td>
    <td>Время работы</td>
    <td>Перерыв</td>
    <td></td>
</tr>

<?php foreach ($weeks as $k => $v) : ?>
    <?php $form = ActiveForm::begin(); ?>
    <tr>
        <td><?= $v ?></td>
        <td>
            <?php foreach ($workGraph as $item): ?>
                <?= $item->week == $v ? $item->work_start . ' - ' . $item->work_end : false; ?>
            <?php endforeach; ?>
        </td>
        <td>
            <?php foreach ($workGraph as $item): ?>
                <?= $item->week == $v ? $item->break_start . ' - ' . $item->break_end : false ?>
            <?php endforeach; ?>
        </td>
        <td>
            <?php Modal::begin([
                'size' => 'modal-sm',
                'toggleButton' => [
                    //'tag' => 'a',
                    'label' => 'Редактировать',
                    //'href' => '#lfake_id',
                    //'data-target' => '#lfake_id'
                ],
            ]);
            ?>
            <div class="col-md-12">
                <?= $form->field($model, 'status_week')->dropDownList(Profile::$days, ['id' => 'type'])->label(false); ?>
            </div>
            <div id="hidden_work_time">
                <div class="col-md-6">
                    <?= $form->field($model, '[$k]work_start')->widget(TimePicker::classname(),
                        [
                            'value' => '00:00',
                            'pluginOptions' => [
                                'showMeridian' => false,
                            ]
                        ])->label('');
                    ?>
                </div>
                <div class="col-md-6">
                    <?= $form->field($model, "[$k]work_end")->widget(TimePicker::classname(),
                        [
                            'value' => '00:00',
                            'pluginOptions' => [
                                'showMeridian' => false,
                            ]
                        ])->label('');
                    ?>
                </div>
                <div class="col-md-12">
                    <?= $form->field($model, '[$k]has_break')->checkbox(['onchange' => 'showBreakTime(this.checked)']) ?>
                </div>
                <div id="hidden_break_time" style="display: none">
                    <div class="col-md-6">
                        <?= $form->field($model, "break_start")->widget(TimePicker::classname(),
                            [
                                'value' => '00:00',
                                'pluginOptions' => [
                                    'showMeridian' => false,
                                ]
                            ])->label('');
                        ?>
                    </div>
                    <div class="col-md-6">
                        <?= $form->field($model, "[$k]break_end")->widget(TimePicker::classname(),
                            [
                                'value' => '00:00',
                                'pluginOptions' => [
                                    'showMeridian' => false,
                                ]
                            ])->label('');
                        ?>
                    </div>
                </div>
            </div>
            <div class="clear"></div>
            <?= Html::submitButton('Сохранить', ['class' => 'btn btn-success']); ?>
            <?= Html::submitButton('Отмена', ['class' => 'btn btn-danger', 'data-dismiss' => 'modal', 'aria-hidden' => 'true']); ?>
            <?php Modal::end(); ?>
        </td>
    </tr>
    <?php $form = ActiveForm::end() ?>
<?php endforeach; ?>


И еще такой вопрос дни недели я раскладываю foreach, и получается что для каждого дня есть свое время и перерыв field($model, '[$k]work_start'), вот только я не могу понять как получить сам массив что бы сохранить в бд [$k]work_start - ПН|09:00, принимаю в контроллере и в модели происходит сам updateProfile.

Сама БД

'id' => 1,
'week' => 'ПН',
'start_time' => '08.00',
'end_time' => '17.00',
'break_start' => '12.00',
'break_start' => '13.00',
is_weekend' => false,

Заранее спасибо!
  • Вопрос задан
  • 427 просмотров
Пригласить эксперта
Ответы на вопрос 2
@Arik
id должны быть уникальны, привязывайтесь к классам
Ответ написан
Uman
@Uman Автор вопроса
PHP, YII2
js
$('.trigger').click(function() {
$('.hidden_work_time').toggle(); });

сам input в класс form-control, чтоб стили не слетали
<?= $form->field($model, 'status_week')->dropDownList(Profile::$days, ['class' => 'form-control trigger'])->label(false); ?>
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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