Нужна помощь! добавление пользователей во множественное поле
- alcompstudio
- Спонсор
- Сообщения: 1767
- Зарегистрирован: 03 янв 2016, 20:42
- Имя: Александр
- Откуда: Мир
Нужна помощь! добавление пользователей во множественное поле
Добрый день!
Есть структура:
Задания
- Работа по заданию
В сущности Задания - есть поле с выпадающим списком со множественным выбором Пользователи
В сущности Работа по заданию - поле - Пользователи.
Нужно периодически добавлять нового пользователя в поле родительской сущности Задания - в то поле со множественным выбором.
Т.е., например, есть уже несколько пользователей в поле сущности Задания. Добавилась запись в дочернюю сущность Работа по заданию, и я оттуда (из поля Пользователи, может через кнопку автоматизации) - "скопировал"/"перенес" нового пользователя в поле со множественным выбором. И он "присоединился" к уже имеющимся другим пользователям. Процесс именно НЕ в перезаписи имеющихся значений, а именно - добавление (есть, например, 3 пользователя, я нажал кнопку в записи Работа по заданию - и добавился еще один пользователь в выпадающий список - уже стало 4 пользователя).
Сейчас все вручную нужно выбирать, но вот можно ли как-то по такому принципу сделать, может JS скрипт какой-то, или через поле Ajax запрос? Было ли у кого подобное?
Есть структура:
Задания
- Работа по заданию
В сущности Задания - есть поле с выпадающим списком со множественным выбором Пользователи
В сущности Работа по заданию - поле - Пользователи.
Нужно периодически добавлять нового пользователя в поле родительской сущности Задания - в то поле со множественным выбором.
Т.е., например, есть уже несколько пользователей в поле сущности Задания. Добавилась запись в дочернюю сущность Работа по заданию, и я оттуда (из поля Пользователи, может через кнопку автоматизации) - "скопировал"/"перенес" нового пользователя в поле со множественным выбором. И он "присоединился" к уже имеющимся другим пользователям. Процесс именно НЕ в перезаписи имеющихся значений, а именно - добавление (есть, например, 3 пользователя, я нажал кнопку в записи Работа по заданию - и добавился еще один пользователь в выпадающий список - уже стало 4 пользователя).
Сейчас все вручную нужно выбирать, но вот можно ли как-то по такому принципу сделать, может JS скрипт какой-то, или через поле Ajax запрос? Было ли у кого подобное?
-
- Инвестор
- Сообщения: 481
- Зарегистрирован: 09 янв 2020, 11:49
- Имя: Владимир
- Откуда: Тверь
- Организация: ООО "ВебСофт"
Re: Нужна помощь! добавление пользователей во множественное поле
Как системе понять какого именно пользователя нужно добавить ?
- alcompstudio
- Спонсор
- Сообщения: 1767
- Зарегистрирован: 03 янв 2016, 20:42
- Имя: Александр
- Откуда: Мир
Re: Нужна помощь! добавление пользователей во множественное поле
Пользователь известен уже, т.к. в записи Работа по заданию есть поле Пользователи (выпадающий список - НЕ множественный выбор, а именно один пользователь), он там уже есть. В этой же записи есть кнопка (например, "Присоединить пользователя к Заданию"). Нажимаем кнопку, пользователь, который "висит" в данном поле - "полетел" в общую "кучу" пользователей, которые находятся в записи родительской сущности Задания - в поле Пользователи со множественным выбором, и добавился к имеющимся.Как системе понять какого именно пользователя нужно добавить ?
Хотя и если даже поле со множественным выбором в сущности Работа - значит добавляем всех пользователей, которые там висят к общему списку в поле Пользователи сущности Задания. Т.е. суть добавить всех кто есть в поле - не перезаписать, как сейчас происходит, а именно добавить. Если автоматизация производится для нескольких записей сразу - значить выбрать со всех отмеченных записей всех-всех пользователей - и добавить их в одно поле.
Как-то так примерно.
- alcompstudio
- Спонсор
- Сообщения: 1767
- Зарегистрирован: 03 янв 2016, 20:42
- Имя: Александр
- Откуда: Мир
Re: Нужна помощь! добавление пользователей во множественное поле
Еще уточнение небольшое
Пользователь изначально должен быть в системе, т.е. мы его НЕ создаем как нового, просто выбираем в запись из имеющихся пользователей, так сказать, подключаем к заданию, где есть другие подключенные пользователи, из поля другой (дочерней) записи.
http://prntscr.com/11wxxwg
Я нашел (вроде как) что-то подобное тут https://progi.pro/dobavlenie-znacheniy- ... 2-11332069, но в силу моих скудных познаний в программировании, не знаю как это оформить (если вообще данный способ сможет помочь). Может кто-то поможет написать код, думаю, пригодится еще кому-то.
Суть вообще моего пожелания: Человек подает заявку на участие в Проекте - а менеджер проекта его подключает в Проект, добавляя к имеющимся другим участникам (которые внесены в поле со множественным выбором) - без "лишних" телодвижений поиска среди множества пользователей в выпадающем списке.
UPD. А еще лучше, чтобы данное добавление делалось в "фоне" путем добавления в БД нового значения (через UPDATE, например, или как там правильно сделать, чтобы произошло добавление нового - дополнительного значения к уже имеющимся в списке в поле БД).
Пользователь изначально должен быть в системе, т.е. мы его НЕ создаем как нового, просто выбираем в запись из имеющихся пользователей, так сказать, подключаем к заданию, где есть другие подключенные пользователи, из поля другой (дочерней) записи.
http://prntscr.com/11wxxwg
Я нашел (вроде как) что-то подобное тут https://progi.pro/dobavlenie-znacheniy- ... 2-11332069, но в силу моих скудных познаний в программировании, не знаю как это оформить (если вообще данный способ сможет помочь). Может кто-то поможет написать код, думаю, пригодится еще кому-то.
Суть вообще моего пожелания: Человек подает заявку на участие в Проекте - а менеджер проекта его подключает в Проект, добавляя к имеющимся другим участникам (которые внесены в поле со множественным выбором) - без "лишних" телодвижений поиска среди множества пользователей в выпадающем списке.
UPD. А еще лучше, чтобы данное добавление делалось в "фоне" путем добавления в БД нового значения (через UPDATE, например, или как там правильно сделать, чтобы произошло добавление нового - дополнительного значения к уже имеющимся в списке в поле БД).
Последний раз редактировалось alcompstudio 23 апр 2021, 11:35, всего редактировалось 1 раз.
- alcompstudio
- Спонсор
- Сообщения: 1767
- Зарегистрирован: 03 янв 2016, 20:42
- Имя: Александр
- Откуда: Мир
Re: Нужна помощь! добавление пользователей во множественное поле
Кстати, заметил одну проблему (может, конечно, не предусмотрено, но все же...) - в автоматизации, где есть действие с изменением полей родительской записи http://prntscr.com/11wyc8q - если поле заполнено в той родительской записи, то почему-то при ручном режиме ввода данных - не выводятся уже заполненные значения (поле пустое). В частности, в моем примере - в родительской записи в поле Пользователи есть значения http://prntscr.com/11wygb7
Но если я выполняю процесс автоматизации, с применением данного действия из дочерней записи, то в форме, где есть ручной ввод в родительскую запись, введенных значений нет - поле пустое http://prntscr.com/11wyl8y (причем при разных опциях ручного ввода - http://prntscr.com/11wyjhl). Это так и должно быть, или же все-таки ошибка?
Но если я выполняю процесс автоматизации, с применением данного действия из дочерней записи, то в форме, где есть ручной ввод в родительскую запись, введенных значений нет - поле пустое http://prntscr.com/11wyl8y (причем при разных опциях ручного ввода - http://prntscr.com/11wyjhl). Это так и должно быть, или же все-таки ошибка?
- alcompstudio
- Спонсор
- Сообщения: 1767
- Зарегистрирован: 03 янв 2016, 20:42
- Имя: Александр
- Откуда: Мир
Re: Нужна помощь! добавление пользователей во множественное поле
В общем, сам спросил, сам ответил))
Реализовал через поле Ajax запрос - в т.ч. повесил на кнопку автоматизации. Теперь по нажатию пользователь "пополняет" поле - присоединяется к уже имеющимся пользователям.
Может кому пригодится образец кода:
Также опытных специалистов (в частности Сергея - разработчика) прошу проанализировать код и порекомендовать оптимизацию, т.к. в силу небольших знаний в php+mysql - думаю я что-то лишнего там "накодировал" ).
Требования к выполнению данного кода - наличие формы (т.е. функционал реализуется частично в "фоновом" режиме), в которой должны быть поля "откуда" берется значение для его передачи (поле Исполнитель (Пользователь) - из текущей сущности Этапы), а также само поле Ajax запрос. Т.е. эти поля должны выводиться в самой форме.
Может кто подскажет как это реализовать, не выводя поля в форму - через подзапросы, я пока затрудняюсь как это сделать. Единственное, предполагаю, что нужно строить подзапрос для поиска нужного значения для записи сущности Исполнители, которая принадлежит к своей родительской записи сущности Этапы. Возможно как-то заменить переменную - на нужный подзапрос. И тогда можно будет выполнять добавление пользователя - прописав код в поле PHP код, или же в том же поле Ajax запрос (они вроде идентично работают).
Реализовал через поле Ajax запрос - в т.ч. повесил на кнопку автоматизации. Теперь по нажатию пользователь "пополняет" поле - присоединяется к уже имеющимся пользователям.
Может кому пригодится образец кода:
Код: Выделить всё
$worker_query = db_query("select field_2064 from app_entity_27 where id='" . $_POST['parent_item_id'] . "'"); //запрос к род.сущности Задания - в поле Исполнители
$current_worker = [725]; // Берем значение из поля текущей сущности Этапы (Исполнитель - пользователь)
if($worker = db_fetch_array($worker_query))
{
$value = $worker['field_2064']; // Берем значение из запроса (Исполнители)
$worker_query = db_query("update app_entity_27 set field_2064 = concat('$value', ',', '$current_worker') where id='" . $_POST['parent_item_id'] . "'"); // Обновляем родительскую сущность Задания - добавляя к имеющимся значениям новое значение из поля 725 - через запятую
}
Требования к выполнению данного кода - наличие формы (т.е. функционал реализуется частично в "фоновом" режиме), в которой должны быть поля "откуда" берется значение для его передачи (поле Исполнитель (Пользователь) - из текущей сущности Этапы), а также само поле Ajax запрос. Т.е. эти поля должны выводиться в самой форме.
Может кто подскажет как это реализовать, не выводя поля в форму - через подзапросы, я пока затрудняюсь как это сделать. Единственное, предполагаю, что нужно строить подзапрос для поиска нужного значения для записи сущности Исполнители, которая принадлежит к своей родительской записи сущности Этапы. Возможно как-то заменить переменную
Код: Выделить всё
$current_worker = [725];
- alcompstudio
- Спонсор
- Сообщения: 1767
- Зарегистрирован: 03 янв 2016, 20:42
- Имя: Александр
- Откуда: Мир
Re: Нужна помощь! добавление пользователей во множественное поле
Да, все-таки "намудрил" - при пересохранении записи этот кусок кода еще раз добавляет пользователя и он дублируется на странице записи. Но если зайти в форму - то дубля нет, там находится "один экземпляр" добавленного пользователя. Вероятно нужно прописать проверку на наличие добавляемого значения в списке - если оно уже присутствует, то не добавлять, если нет такого - добавляем. Прошу подсказки, как это сделать...
Код: Выделить всё
set field_2064 = concat('$value', ',', '$current_worker')
- alcompstudio
- Спонсор
- Сообщения: 1767
- Зарегистрирован: 03 янв 2016, 20:42
- Имя: Александр
- Откуда: Мир
Re: Нужна помощь! добавление пользователей во множественное поле
Некорректно работает мой код... ((
Получается без проверки на пустые поля - все равно пытается "запихнуть" нулевое значение в поле с пользователями, в результате чего выскакивает ошибка - при попытке редактировать запись в сущности Задание (т.е. там, где скриптом добавляется/должен добавляться пользователь)
http://prntscr.com/1252eba
Как правильно сформировать код, возможно не хватает еще также срабатывания скрипта на событие onsubmit (если я правильно понял) - то как это сделать? Чтобы код не срабатывал просто при открытии формы редактирования и сохранения (добавления) пустого значения в дочерней записи ? Нужна помощь...
Получается без проверки на пустые поля - все равно пытается "запихнуть" нулевое значение в поле с пользователями, в результате чего выскакивает ошибка - при попытке редактировать запись в сущности Задание (т.е. там, где скриптом добавляется/должен добавляться пользователь)
http://prntscr.com/1252eba
Как правильно сформировать код, возможно не хватает еще также срабатывания скрипта на событие onsubmit (если я правильно понял) - то как это сделать? Чтобы код не срабатывал просто при открытии формы редактирования и сохранения (добавления) пустого значения в дочерней записи ? Нужна помощь...
- alcompstudio
- Спонсор
- Сообщения: 1767
- Зарегистрирован: 03 янв 2016, 20:42
- Имя: Александр
- Откуда: Мир
Re: Нужна помощь! добавление пользователей во множественное поле
Понемногу сам с собой общаюсьalcompstudio писал(а): ↑27 апр 2021, 13:35 Некорректно работает мой код... ((
Получается без проверки на пустые поля - все равно пытается "запихнуть" нулевое значение в поле с пользователями, в результате чего выскакивает ошибка - при попытке редактировать запись в сущности Задание (т.е. там, где скриптом добавляется/должен добавляться пользователь)
http://prntscr.com/1252eba
Как правильно сформировать код, возможно не хватает еще также срабатывания скрипта на событие onsubmit (если я правильно понял) - то как это сделать? Чтобы код не срабатывал просто при открытии формы редактирования и сохранения (добавления) пустого значения в дочерней записи ? Нужна помощь...
В общем, кое-каким образом сделал проверку на пустые значения в обоих сущностях, сделал добавление в Задания одного (первого) значения, если там пусто и НЕ добавление пустого (нулевого) из Этапов, если в них пусто. Вот такой код получился, если будет у кого-то из экспертов возможность оптимизации (чувствую, намудрил с дублированием запросов) - буду рад помощи.
Код: Выделить всё
$worker_query = db_query("select field_2064 from app_entity_27 where id='" . $_POST['parent_item_id'] . "'"); //запрос к род.сущности Задания - в поле Исполнители
$current_worker = [725]; // Берем значение из поля текущей сущности Этапы (Исполнитель - пользователь)
if (!empty($current_worker)) { //Проверяем чтобы поле из сущности Этапы было не пустое
if($worker = db_fetch_array($worker_query))
{
$value = $worker['field_2064']; // Берем значение из запроса (Исполнители)
if (!empty($value)) { //Проверяем чтобы поле из сущности Задания было не пустое
$worker_query = db_query("update app_entity_27 set field_2064 = concat('$value', ',', '$current_worker') where id='" . $_POST['parent_item_id'] . "'"); // Если не пустое, то Обновляем родительскую сущность Задания - добавляя к имеющимся значениям новое значение из поля 725 - через запятую
}
else {
$worker_query = db_query("update app_entity_27 set field_2064 = '$current_worker' where id='" . $_POST['parent_item_id'] . "'"); //Если пустое, то Обновляем родительскую сущность Задания - добавляя новое значение из поля 725
}
}
return false;
}
- alcompstudio
- Спонсор
- Сообщения: 1767
- Зарегистрирован: 03 янв 2016, 20:42
- Имя: Александр
- Откуда: Мир
Re: Нужна помощь! добавление пользователей во множественное поле
В общем, пока не удается сделать выполнение php кода на отправку формы, т.к. в системе изначально в данном поле выполнение настроено на открытие формы.
Было бы неплохо добавить опции в настройки (если такое технически возможно):
- выполнять php код при открытии формы
- выполнять php код при отправке формы (кнопка сохранить или Продолжить в форме автоматизации)
Было бы неплохо добавить опции в настройки (если такое технически возможно):
- выполнять php код при открытии формы
- выполнять php код при отправке формы (кнопка сохранить или Продолжить в форме автоматизации)