Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757
Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737 Форумы портала PHP.SU :: Нужна помощь в создании скрипта для создания графиков дежурств [2]
Покинул форум
Сообщений всего: 879
Дата рег-ции: Март 2017 Откуда: Германия, Бавария
Помог: 37 раз(а)
Ruskat пишет:
Спасибо большое. Освоил.
А в чём может быть дело, что применил такой метод дублирования строк, но фамилии раскрываются только в первой строке? В остальных только должности.
Я показал Вам полностью рабочий код. Вместе с тем, что Вы применяли работать не будет.
Обратите внимание на то, что нельзя изменять id в тэгах селект.
Если очень нужно, то изменяйте также и селекторы в CSS и JS.
Общее правило.
Если в динамическом коде с JS что-то не работает, смотрите сообщения об ошибках в консоле браузера.
Удачи!
p.s. В Вашем коде каждый тэг селект "обёрнут" в три тэга див. Не надо так делать.
Ruskat
Отправлено: 21 Января, 2022 - 02:13:01
Гость
Покинул форум
Сообщений всего: 70
Дата рег-ции: Март 2008
Помог: 0 раз(а)
Vladimir Kheifets пишет:
p.s. В Вашем коде каждый тэг селект "обёрнут" в три тэга див. Не надо так делать.
Спасибо. А как лучше сформированных в такой форме работников отпралять в базу, чтобы потом они отобразились на странице просмотра графика?
В одну ячейку в виде Json, как я полагаю?
Vladimir Kheifets
Отправлено: 21 Января, 2022 - 18:42:46
Частый посетитель
Покинул форум
Сообщений всего: 879
Дата рег-ции: Март 2017 Откуда: Германия, Бавария
Помог: 37 раз(а)
Ruskat пишет:
А как лучше сформированных в такой форме работников отпралять в базу, чтобы потом они отобразились на странице просмотра графика?
В одну ячейку в виде Json, как я полагаю?
Верно, данные писать в виде Json и тип данных sql поля, для сохранения данных "json".
Остальное улеглось?
Ruskat
Отправлено: 23 Января, 2022 - 11:08:58
Гость
Покинул форум
Сообщений всего: 70
Дата рег-ции: Март 2008
Помог: 0 раз(а)
Vladimir Kheifets пишет:
Ruskat пишет:
А как лучше сформированных в такой форме работников отпралять в базу, чтобы потом они отобразились на странице просмотра графика?
В одну ячейку в виде Json, как я полагаю?
Верно, данные писать в виде Json и тип данных sql поля, для сохранения данных "json".
Остальное улеглось?
Стараюсь улаживать. Просто пока больше над бэком работаю. Потихоньку, для снятия напряжения, фронт начал мастырить под соответствие адресной навигации.
Касательно вашей формы есть непонимание:
в цикле
Догадался добавить optionу параметр value, чтобы что-то отправить, а не просто увидеть. Всё, что я могу отправить, это данные из optObj[i] - то есть Ф.И.О. А задумал отправлять именно ID работника, который хоть и приходит в список json, но я его так и не нашел ни в какой переменной.
Догадался добавить optionу параметр value, чтобы что-то отправить, а не просто увидеть. Всё, что я могу отправить, это данные из optObj[i] - то есть Ф.И.О. А задумал отправлять именно ID работника, который хоть и приходит в список json, но я его так и не нашел ни в какой переменной.
Добрый день! ID работника было в переменной i. Чтобы было понятнее заменил i на ID:
А вот функция запроса работников через XMLHttpRequest исходя из ID должности может подвести, так как, как я понимаю, счёт идёт по номеру элемента option, а не ссылается на ID самой должности, к которой привязан работник. Сбой произойдёт, когда ID в списке должностей будут не по порядку или в разброс.
Vladimir Kheifets
Отправлено: 24 Января, 2022 - 06:06:42
Частый посетитель
Покинул форум
Сообщений всего: 879
Дата рег-ции: Март 2017 Откуда: Германия, Бавария
Помог: 37 раз(а)
Ruskat пишет:
А вот функция запроса работников через XMLHttpRequest исходя из ID должности может подвести, так как, как я понимаю, счёт идёт по номеру элемента option, а не ссылается на ID самой должности, к которой привязан работник. Сбой произойдёт, когда ID в списке должностей будут не по порядку или в разброс.
Если Вы имеете ввиду value в option, то счёт НЕ идёт по номеру элемента option.
Посмотрите в коде, индекс массива $arr, который затем попадает в value option, это id работника из таблицы, а не порядковый номер.
Посмотрел Ваши доработки, Увидел только full_name_to_short
1. Советую Вам не вставлять функции в коде там где они применяются.
2. м. б. сделать попроще
Как теперь эти данные правильно в базу писать? Так как параметры [st_disp] => 2, [kps] => 5, [bazirovanie] => 10 только одни на определенную дату/дежурство. Внесены лишь раз и могут не меняться, если не нужно корректировать.
А вот [brygada] => 205, [bazirovanie] => 10, [wrk_1] => 22 ... Их будет несколько: [brygada] => 206, [brygada] => 216... Могут быть с разным составом, редактироваться или удаляться.
Должность я выведу исходя из ID должности, которая указана в профиле работника. Главное, что имеется ID работника.
Вот набросал условное представление [img]https://i.yapx.ru/QUWyM.png[/img], что мне нужно видеть на выходе для просмотра графика онлайн.
Как это правильно писать в базу и выводить с привязкой к определённой дате?
Подскажите, пожалуйста.
Как теперь эти данные правильно в базу писать? Так как параметры [st_disp] => 2, [kps] => 5, [bazirovanie] => 10 только одни на определенную дату/дежурство. Внесены лишь раз и могут не меняться, если не нужно корректировать.
А вот [brygada] => 205, [bazirovanie] => 10, [wrk_1] => 22 ... Их будет несколько: [brygada] => 206, [brygada] => 216... Могут быть с разным составом, редактироваться или удаляться.
Должность я выведу исходя из ID должности, которая указана в профиле работника. Главное, что имеется ID работника.
Вот набросал условное представление [img]https://i.yapx.ru/QUWyM.png[/img], что мне нужно видеть на выходе для просмотра графика онлайн.
Как это правильно писать в базу и выводить с привязкой к определённой дате?
Подскажите, пожалуйста.
Добрый день!
Поскольку у Вас в бригаде у работников время работы разное и по нему могут потребоваться выборки, не стоит упаковывать данные в один стобец типа json.
Попробуйте сделать две таблицы
т.к. дата в таблице `brigada` создает с датой from `workers_brigada`
а дата то совпадает датой from или +1day, то можно записывать только время.
Конечно это усложнит выборку данных.
Удачи!
Ruskat
Отправлено: 01 Февраля, 2022 - 00:10:08
Гость
Покинул форум
Сообщений всего: 70
Дата рег-ции: Март 2008
Помог: 0 раз(а)
Vladimir Kheifets пишет:
Удачи!
Не могу зацепиться за формирование в базе строк с работниками.
А именно [wrk_1]... ($_POST['wrk_1'])
Параметр идентификатора работника динамичен. Может и до [wrk_4] дойти, а може и 2 иметь.
Как посчитать колличество [wrk_Х] , чтобы потом аналогично и для времени посчитать и для работника получить цикл и всё записать в базу?
Писать думаю в цикле, примерно так:
Покинул форум
Сообщений всего: 879
Дата рег-ции: Март 2017 Откуда: Германия, Бавария
Помог: 37 раз(а)
Ruskat пишет:
Vladimir Kheifets пишет:
Удачи!
Не могу зацепиться за формирование в базе строк с работниками.
А именно [wrk_1]... ($_POST['wrk_1'])
Параметр идентификатора работника динамичен. Может и до [wrk_4] дойти, а може и 2 иметь.
Как посчитать колличество [wrk_Х] , чтобы потом аналогично и для времени посчитать и для работника получить цикл и всё записать в базу?
Писать думаю в цикле, примерно так:
Может сформировать как-то иначе, чтобі получилось $_POST['wrk'][0]...[4]
Добрый день! $n = count($_POST); Выдаст количество эл. массива, а это совсем не то, что Вам нужно.
Если формуляр заполняется последовательно с первой строки, то так можно выбрать все введенное, до первой пустой:
Покинул форум
Сообщений всего: 70
Дата рег-ции: Март 2008
Помог: 0 раз(а)
Не мало уже сделал. Даже получилось работнику по его табельному номеру показывать, когда у него дежурства и на какой бригаде.
Сейчас я хочу все дежурства, в виде бригад, на которых он числится, разделить по трем раскрывающимся спойлерам:
1: Текущее дежурство - если дата и время дежурства уже наступили (C 2020-02-08 08:00 по 2020-02-09 08:00 ) - если таковое имеется.
2: Грядущее дежурство - если до выхода на дежурство менее 3-х суток
3: Предстоящие дежурства - все будущие дежурства, до которых 3-е и более суток.
4: Прошлые дежурства - самый низ - от момента времени окончания суток и пока они есть. Далее продумаю автоочистку дежурств, старее 1-го месяца.
Vladimir Kheifets
Отправлено: 06 Февраля, 2022 - 11:30:03
Частый посетитель
Покинул форум
Сообщений всего: 879
Дата рег-ции: Март 2017 Откуда: Германия, Бавария
Помог: 37 раз(а)
Ruskat пишет:
Не мало уже сделал. Даже получилось работнику по его табельному номеру показывать, когда у него дежурства и на какой бригаде.
Сейчас я хочу все дежурства, в виде бригад, на которых он числится, разделить по трем раскрывающимся спойлерам:
1: Текущее дежурство - если дата и время дежурства уже наступили (C 2020-02-08 08:00 по 2020-02-09 08:00 ) - если таковое имеется.
2: Грядущее дежурство - если до выхода на дежурство менее 3-х суток
3: Предстоящие дежурства - все будущие дежурства, до которых 3-е и более суток.
4: Прошлые дежурства - самый низ - от момента времени окончания суток и пока они есть. Далее продумаю автоочистку дежурств, старее 1-го месяца.
Добрый день!
Видимо здесь опечатка: разделить по трем раскрывающимся спойлерам, а покали четыре.
Сделал так, что их м.б. столько, сколько будет блоков
Покинул форум
Сообщений всего: 70
Дата рег-ции: Март 2008
Помог: 0 раз(а)
Vladimir Kheifets пишет:
Видимо здесь опечатка: разделить по трем раскрывающимся спойлерам
Таки по четырём.
Но Ваш код не стал моим решением. Скорее всего я не верно выразился.
Мне нужно вывести блоки с прошедшими текущим и предстоящими дежурствами определённого работника.
$gchw_future=mysqli_query($db,"SELECT * FROM `gch_brygady` WHERE wrk_id LIKE '%".$tn."%' and `dt_fr` > date(now()) ORDER BY `dt_fr` ASC");
Где $tn - табельный номер работника. dt_fr - дата, С которой дежурство. В компоновке с tm_fr - время, с которого дежурство, дадут более точное начало информирования, когда человеку на работу.
А там уже выбрать дежурства с участием конкретного работника из базы:
`dt_fr` > date(now()) - позже сегодняшней даты
`dt_fr` = date(now()) - если сегодня утром на работу. Тут еще подумаю, чтобы отображало за сутки до дежурства - выбирать, если не более одного дня - за день до сегодняшнего на сутки.
`dt_fr` < date(now()) - отображать дежурства, которые уже были - ранее сегодняшней даты
В каждом из файлов стоит условие отображать содержимое, если есть хоть одна запись, согласно условиям выборки - не ноль. Например:
$gchw_past = mysqli_query($db, "SELECT * FROM `gch_brygady` WHERE wrk_id LIKE '%".$tn."%' and `dt_fr` < date(now()) ORDER BY `dt_fr` DESC"); // and `dt_fr` < date(now())
if($ssb->s== 0){$sb='';}else{$sb=$ssb->s.' сек. ';}if($sse->s== 0){$se='';}else{$se=$sse->s.' сек. ';}
$w_b=$db.$hb.$mb.$sb;$w_e=$de.$he.$me.$se;
echo'До початку чергування: '.$w_b.' До закінчення чергування: '.$w_e;
}
Ещё хочу сформировать прогресс-бар, который будет процентно заполняться в зависимости от отработанного времени или времени до начала работы.
Прошу помощи в добавлении к бригаде текстовой заметки.
Работников бывает трое или четверо. Вот я припысываю переменную заметки записать к ячейке третьего работника таким образом:
Далее она пишется в цикле в базу. Можно как-то автоматически задать, писать заметку к ячейке последнего работника, третьего или четвёртого автоматически, а не исскуственным созданием массива?
Все гости форума могут просматривать этот раздел. Только зарегистрированные пользователи могут создавать новые темы в этом разделе. Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.