Всем здрасте, нужна помощь! Делаю рабочий график клиента, во VIEW в форме есть div и я пытаюсь с помощью jquery прятать определенные блоки: Выходные - то прячется все и остается только кнопки сохранить или отмена, или наоборот когда стоит Рабочий день то выбирается рабочие время и еще с низу можно поставить чекбокс и выбрать перерыв, и после нажатия на чекбокс появляется div блок с выбором времени на перерыв.
Рабочий вариант первой формы
Другая форма с не рабочим вариантом
Сам 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.
Заранее спасибо!
Проблема я думаю тут не в Yii, а в js, селектор с id должен быть только 1 на странице, а у вас он в каждом окне получается, замените их на классы, к примеру:
<div id="hidden_work_time">
на
<div class="hidden_work_time">
И в списке тоже замените:
<?= $form->field($model, 'status_week')->dropDownList(Profile::$days, ['id' => 'type'])->label(false); ?>
на
<?= $form->field($model, 'status_week')->dropDownList(Profile::$days, ['class' => 'type'])->label(false); ?>
И так же js код:
$(function () {
$('.hidden_work_time').show();
$(document).on('change', '.type', function() {
if ($(this).val() == '2') {
$(this).closest('.hidden_work_time').hide();
} else {
$(this).closest('.hidden_work_time').show();
}
});
});
Теперь должно работать всё.
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); ?>
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
При попытке сделать GET запрос к VKcom для поиска определенной композиции
Здравствуйте, я не давно сменил хостинг для сайта и у меня перестала подключатся база данных и на страницу не выводит никакой ошибки, а на предыдущем...