Exebeche
@Exebeche
Осваиваю программирование

Как вывести и сохранить повторяющиеся поля формы без дублирования на стороне пользователя?

Делаю "сложную" регистрацию:
у пользователя может быть несколько профессий
для каждой профессии своя анкета разделенная на блоки/разделы
анкета составляется из админки (каждое поле отдельно, полю присваиваются block_id (блоки анкеты - анкета разделена на несколько блоков) и profession_id (посматриваю в сторону profession_assignments, но это лирика - массив полей собирается на ура))
До этого места все гут))
Все анкеты заполняются раздельно по профессии, но... нужно, чтобы в одном блоке выводились поля из всех выбранных пользователем профессий (без дублей, а они, почти все, одинаковые, за редким исключением).
Профессии могут как добавляться так и удаляться самим пользователем (из имеющихся на сайте).

Вопрос: как собрать и сохранить поля данного блока анкеты чтобы при заполнении пользователем не выводились дубли и при этом сохранялись значения для всех профессий?
Как при добавлении пользователем профессии записать дублирующиеся поля без участия пользователя?

Подумываю над тем, что можно массив собрать из полей этого блока и уникализировать по id поля, но как потом в отсеянные передать? Еще раз собрать массив полей этого блока, но без уникальности и при совпадении id циклом сохранять?
Не слишком ли заморочено это будет? Или все правильно понял и зря накручиваю?
  • Вопрос задан
  • 80 просмотров
Пригласить эксперта
Ответы на вопрос 1
coderisimo
@coderisimo
Не совсем понятен вопрос. )) У разных профессий могут быть одинаковые поля. Значит можно сделать :

отдельную таблицу с полями
таблицу с профессиями
таблицу сопоставления полей и профессий.
таблицу сопоставления пользователей и профессий.

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

что такое block_id и блок, вообще? что такое "удалить профессию" ?
Ответ написан
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы