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 :: Как организовать форму
Покинул форум
Сообщений всего: 1239
Дата рег-ции: Сент. 2011 Откуда: Крым
Помог: 25 раз(а)
Собственно задался таким вопросом:
Как организовать форму, так чтобы в зависимости от выбранной категории, добавлялись специализированные поля ввода?
К примеру для категории
Автомобили : Объем двигателя, пробег, год вып.
Мобильные телефоны: Кол-во сим карт ..
Не хочется делать шаблон формы по каждую категорию, и еще возникают трудности с организацией базы данных, пока видится выход как писать все содержимое спец. полей сериализованой строкой в одно поле, потом ее разбирать на выводе.
Подскажите как такое правильнее провернуть ?
----- Когда всматриваешься в тёмную бездну, учти, что кто-то может смотреть на тебя из неё...
EuGen
Отправлено: 27 Октября, 2011 - 21:06:02
Профессионал
Покинул форум
Сообщений всего: 9095
Дата рег-ции: Июнь 2007 Откуда: Berlin
Помог: 707 раз(а)
Например, храните структуру полей для каждого типа форм в виде массива и при смене поля делайте AJAX-запрос на сервер с последующим созданием полей для той структуры, которую сервер вернет.
----- Есть в мире две бесконечные вещи - это Вселенная и человеческая глупость. Но насчет первой .. я не уверен.
snikers987
Отправлено: 27 Октября, 2011 - 21:13:42
Участник
Покинул форум
Сообщений всего: 1239
Дата рег-ции: Сент. 2011 Откуда: Крым
Помог: 25 раз(а)
EuGen пишет:
Например, храните структуру полей для каждого типа форм в виде массива и при смене поля делайте AJAX-запрос на сервер с последующим созданием полей для той структуры, которую сервер вернет.
----- Когда всматриваешься в тёмную бездну, учти, что кто-то может смотреть на тебя из неё...
EuGen
Отправлено: 27 Октября, 2011 - 21:16:22
Профессионал
Покинул форум
Сообщений всего: 9095
Дата рег-ции: Июнь 2007 Откуда: Berlin
Помог: 707 раз(а)
Как именно хранить поля - уже решать Вам, исходя из того, как удобнее.
Однако же верно - ключом будет имя формы, значением - некоторая структура полей.
Соответственно при смене значения Вы будете посылать запрос на сервер скрипту, который по переданному значению вернет список полей и затем уже Вы с помощью js создадите на странице нужные поля.
----- Есть в мире две бесконечные вещи - это Вселенная и человеческая глупость. Но насчет первой .. я не уверен.
snikers987
Отправлено: 27 Октября, 2011 - 21:19:10
Участник
Покинул форум
Сообщений всего: 1239
Дата рег-ции: Сент. 2011 Откуда: Крым
Помог: 25 раз(а)
JS я думаю тут не нужен, ибо мне не нужно менять форму на стороне клиента, мне нужно ее сформировать в соответствии с выбранной категории и показать (Добавление)
----- Когда всматриваешься в тёмную бездну, учти, что кто-то может смотреть на тебя из неё...
EuGen
Отправлено: 27 Октября, 2011 - 21:31:41
Профессионал
Покинул форум
Сообщений всего: 9095
Дата рег-ции: Июнь 2007 Откуда: Berlin
Помог: 707 раз(а)
Можете и в таблице организовать. Например, Три таблицы - формы, поля и формы_поля (связка). Какие у полей должны быть атрибуты - не могу сказать, так как задача весьма пространная пока что. Думаю, Вам виднее, какой набор атрибутов должен быть у полей Ваших форм.
----- Есть в мире две бесконечные вещи - это Вселенная и человеческая глупость. Но насчет первой .. я не уверен.
snikers987
Отправлено: 27 Октября, 2011 - 21:47:31
Участник
Покинул форум
Сообщений всего: 1239
Дата рег-ции: Сент. 2011 Откуда: Крым
Помог: 25 раз(а)
Нет, я имел ввиду, как записывать данные в таблицу, как организовать поля таблицы, если не известно какое количество будет полей в форме, писать в одно поле сериализованной строкой?
----- Когда всматриваешься в тёмную бездну, учти, что кто-то может смотреть на тебя из неё...
EuGen
Отправлено: 27 Октября, 2011 - 21:51:32
Профессионал
Покинул форум
Сообщений всего: 9095
Дата рег-ции: Июнь 2007 Откуда: Berlin
Помог: 707 раз(а)
Зачем? Если у Вас есть три таблицы, то Вам достаточно вставлять записи в таблицу полей и в таблицу-связку, никаких сериализованных строк ни в коем случае не нужно.
----- Есть в мире две бесконечные вещи - это Вселенная и человеческая глупость. Но насчет первой .. я не уверен.
Все гости форума могут просматривать этот раздел. Только зарегистрированные пользователи могут создавать новые темы в этом разделе. Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.