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 :: Как организовать форму

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Описание: с разными полями для категорий
snikers987
Отправлено: 27 Октября, 2011 - 21:01:45
Post Id



Участник


Покинул форум
Сообщений всего: 1239
Дата рег-ции: Сент. 2011  
Откуда: Крым


Помог: 25 раз(а)




Собственно задался таким вопросом:

Как организовать форму, так чтобы в зависимости от выбранной категории, добавлялись специализированные поля ввода?

К примеру для категории
Автомобили : Объем двигателя, пробег, год вып.
Мобильные телефоны: Кол-во сим карт ..

Не хочется делать шаблон формы по каждую категорию, и еще возникают трудности с организацией базы данных, пока видится выход как писать все содержимое спец. полей сериализованой строкой в одно поле, потом ее разбирать на выводе.

Подскажите как такое правильнее провернуть ?


-----
Когда всматриваешься в тёмную бездну, учти, что кто-то может смотреть на тебя из неё...
 
My status
 Top
EuGen Администратор
Отправлено: 27 Октября, 2011 - 21:06:02
Post Id


Профессионал


Покинул форум
Сообщений всего: 9095
Дата рег-ции: Июнь 2007  
Откуда: Berlin


Помог: 707 раз(а)




Например, храните структуру полей для каждого типа форм в виде массива и при смене поля делайте AJAX-запрос на сервер с последующим созданием полей для той структуры, которую сервер вернет.


-----
Есть в мире две бесконечные вещи - это Вселенная и человеческая глупость. Но насчет первой .. я не уверен.
 
 Top
snikers987
Отправлено: 27 Октября, 2011 - 21:13:42
Post Id



Участник


Покинул форум
Сообщений всего: 1239
Дата рег-ции: Сент. 2011  
Откуда: Крым


Помог: 25 раз(а)




EuGen пишет:
Например, храните структуру полей для каждого типа форм в виде массива и при смене поля делайте AJAX-запрос на сервер с последующим созданием полей для той структуры, которую сервер вернет.





PHP:
скопировать код в буфер обмена
  1. $arr = array(
  2.                 auto => array('field1' => 'field1','field2' => 'field2'),
  3.                 mob_tel => array('field1' => 'field1','field2' => 'field2')
  4.                         );

Так?

А как быть с базой?

(Отредактировано автором: 27 Октября, 2011 - 21:14:31)



-----
Когда всматриваешься в тёмную бездну, учти, что кто-то может смотреть на тебя из неё...
 
My status
 Top
EuGen Администратор
Отправлено: 27 Октября, 2011 - 21:16:22
Post Id


Профессионал


Покинул форум
Сообщений всего: 9095
Дата рег-ции: Июнь 2007  
Откуда: Berlin


Помог: 707 раз(а)




Как именно хранить поля - уже решать Вам, исходя из того, как удобнее.
Однако же верно - ключом будет имя формы, значением - некоторая структура полей.
Соответственно при смене значения Вы будете посылать запрос на сервер скрипту, который по переданному значению вернет список полей и затем уже Вы с помощью js создадите на странице нужные поля.


-----
Есть в мире две бесконечные вещи - это Вселенная и человеческая глупость. Но насчет первой .. я не уверен.
 
 Top
snikers987
Отправлено: 27 Октября, 2011 - 21:19:10
Post Id



Участник


Покинул форум
Сообщений всего: 1239
Дата рег-ции: Сент. 2011  
Откуда: Крым


Помог: 25 раз(а)




JS я думаю тут не нужен, ибо мне не нужно менять форму на стороне клиента, мне нужно ее сформировать в соответствии с выбранной категории и показать
(Добавление)
PHP:
скопировать код в буфер обмена
  1. $arr = array(
  2.                 auto => array('field1' => array('type'=>'text','class' => 'textinput'),'field2' => array('type'=>'radio','class' => 'radioinput')),
  3.                         );



И всеже, как организовать таблицу в БД?

(Отредактировано автором: 27 Октября, 2011 - 21:24:05)



-----
Когда всматриваешься в тёмную бездну, учти, что кто-то может смотреть на тебя из неё...
 
My status
 Top
EuGen Администратор
Отправлено: 27 Октября, 2011 - 21:31:41
Post Id


Профессионал


Покинул форум
Сообщений всего: 9095
Дата рег-ции: Июнь 2007  
Откуда: Berlin


Помог: 707 раз(а)




Можете и в таблице организовать. Например, Три таблицы - формы, поля и формы_поля (связка). Какие у полей должны быть атрибуты - не могу сказать, так как задача весьма пространная пока что. Думаю, Вам виднее, какой набор атрибутов должен быть у полей Ваших форм.


-----
Есть в мире две бесконечные вещи - это Вселенная и человеческая глупость. Но насчет первой .. я не уверен.
 
 Top
snikers987
Отправлено: 27 Октября, 2011 - 21:47:31
Post Id



Участник


Покинул форум
Сообщений всего: 1239
Дата рег-ции: Сент. 2011  
Откуда: Крым


Помог: 25 раз(а)




Нет, я имел ввиду, как записывать данные в таблицу, как организовать поля таблицы, если не известно какое количество будет полей в форме, писать в одно поле сериализованной строкой?


-----
Когда всматриваешься в тёмную бездну, учти, что кто-то может смотреть на тебя из неё...
 
My status
 Top
EuGen Администратор
Отправлено: 27 Октября, 2011 - 21:51:32
Post Id


Профессионал


Покинул форум
Сообщений всего: 9095
Дата рег-ции: Июнь 2007  
Откуда: Berlin


Помог: 707 раз(а)




Зачем? Если у Вас есть три таблицы, то Вам достаточно вставлять записи в таблицу полей и в таблицу-связку, никаких сериализованных строк ни в коем случае не нужно.


-----
Есть в мире две бесконечные вещи - это Вселенная и человеческая глупость. Но насчет первой .. я не уверен.
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Вопросы новичков »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB