2013-08-13 4 views
1

Я планировал построить таблицу базы данных для хранения значений css формы. Формы динамические. Это означает, что нельзя сказать, какие элементы он содержит в композиции.Сохранение значений css в таблице базы данных

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

Насколько я планировал таблицы могут идти, как это:

Рассмотрим две таблицы: classes, Styles

Классы таблица имеет столбцы, как: id, class_name

Стили таблица имеет столбцы, как: id, class_id(foreign key), css_property, css_values

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

ответ

4

Вы не должны хранить значения CSS в базе данных. Вы просто создаете больше работы для себя и замедляете процесс. Вместо этого вы должны добавить классы в поля формы и просто написать стили в external stylesheet, которые соответствуют каждому классу.

+0

Но значения Css также будут назначены в динамическом режиме. Я имею в виду, что форма должна быть сгенерирована вместе с css. Он должен быть восстановлен вместе с css. В таких случаях мы не можем идти, не сохраняя значения css в базе данных –

+0

, просто сохраните имя таблицы стилей в базе данных, а не стили. –

+0

Зачем вам нужно генерировать CSS на лету? –

0

Я думаю, что вы можете генерировать поля формы динамически и присваивать идентификатор поля и уникальный идентификатор формы, если вы хотите назначить стили css, такие как позиция, цвета, размеры и т. Д., Вы должны присвоить все эти свойства и значения каждому поле типа #FormId #FieldID {properties: values;} и хранить в базе данных в уникальном текстовом поле.

таблицы формы в

FormId | Html | Styles | "the rest of the interested form properties" 

:)

+0

Да. Я думаю, что это то, что я запланировал на данный момент. Разве ваше решение отличается от моего собственного предложения, как я объяснил? Извините, я не смог четко ответить на ваш вопрос –

0

Похоже, вы создаете редактор форм, который позволяет пользователям назначать стили к элементам формы, и вы хотите, чтобы иметь возможность сохранить эти изменения в базы данных. Если это так, у вас, вероятно, уже есть таблица типа form_elements и таблица, подобная forms. Я просто добавил два текстовых столбца: form_elements.extra_html_attrs и forms.extra_html. Это позволит вам прикреплять произвольные атрибуты к каждому элементу (например, extra_html_attrs = class="fancy-element" style="width:100px") и включать произвольный html в форму (например, extra_html = <style>.fancy-element{border:blue}</style>). Моделирование атрибутов, связанных с CSS, в отдельных таблицах базы данных добавляет сложности и не покупает вам ничего в этой ситуации.

0

Я бы создал класс javascript и использовал JQuery. Каждый из запросов будет использовать правильный класс, используя addClass. Класс, который вы добавляете, будет динамически создаваться в классе javascript.

+0

Мне действительно нужно было сохранить эти значения CSS в таблице. Это bcoz значения css для каждого свойства изменяются динамически пользователем. –

+0

Когда вы загружаете первый раз, вы передаете css-значения togeather с html. Тогда вам понадобится вызов ajax на сервер для хранения фактических имен класса css, если пользователь их изменит. – Skywalker

Смежные вопросы