Вставьте структуру Coldfusion в базу данных

Если бы я хотел сохранить отправку контактной формы в базу данных, как я могу вставить область формы в качестве отправки? Прошло некоторое время с тех пор, как я использовал Coldfusion.

Контактные формы различаются в зависимости от того, из какой части сайта они были отправлены, поэтому необходимо масштабировать и обрабатывать форму с 5 полями или форму с 10 полями. Я просто хочу хранить данные в таблице больших двоичных объектов.


person Kevin    schedule 14.06.2010    source источник


Ответы (4)


Самый экономичный и наименее сложный способ вернуть исходную форму — это использовать serializeJSON. После этого вы можете использовать что-то вроде ключ: значение | ключ: значение или XML-представление вашей структуры.

person zarko.susnjar    schedule 14.06.2010
comment
Хорошо, я использовал эту функцию и смог передать ее в CFC, чтобы вставить в свою таблицу. Я вижу данные в базе данных, но теперь CF находится в состоянии «Ожидание...» после отправки формы. Что заставляет его зависать? - person Kevin; 14.06.2010
comment
? с помощью отправки формы ajax? Отладка с помощью Firebug. Он не должен висеть. - person Henry; 14.06.2010

Cfwddx также является альтернативой.

person David Collie    schedule 14.06.2010
comment
И вы проголосовали за меня за это? Это совершенно правильный ответ. - person David Collie; 14.06.2010
comment
Немного сильно! Тот факт, что он дает вам XML, может быть гораздо полезнее для других серверных языков, а не для этого нового модного JSON :) - person David Collie; 15.06.2010
comment
Я не знаю, WDDX похож на Flash Form. Они там только по причине обратной совместимости. Мы не должны больше поощрять их использование. Соглашаться? - person Henry; 15.06.2010
comment
хотя я согласен с Генри в том, что wddx больше не следует использовать, я скажу, что все, что делает работу, превосходит то, что вы должны делать каждый раз. если вы используете базу данных сервера sql со столбцом xml, то в этой ситуации я бы сказал, что использование wddx будет быстрее и менее подвержено ошибкам, чем создание собственного сценария преобразования xml. - person rip747; 15.06.2010
comment
@rip747 не будет toXML() - cflib.org/udf/toXML лучше, чем тяжелый WDDX? - person Henry; 15.06.2010
comment
@ Генри - может быть. однако я бы предпочел использовать wddx, если вам нужно преобразовать типы cfml в xml, как это проверено и доказано. не говоря уже о том, что это родной тег;) - person rip747; 16.06.2010
comment
@rip747 сохраняет WDDX в столбце XML? Это вариант использования, о котором я никогда не думал. Ты пытался? - person Henry; 16.06.2010

Я не знаю, есть ли способ сохранить нативную структуру в базе данных, но задумывались ли вы об использовании JSON для представления вашего объекта в виде значений пары ключей, а затем анализировать его в нативную структуру после извлечения из базы данных?

Существуют теги/функции, которые помогут вам с кодированием и декодированием в JSON:

person Joe D    schedule 14.06.2010
comment
Поскольку вы используете CF8, просто используйте SerializeJSON()/DeserizlieJSON(). Нет необходимости использовать стороннюю библиотеку. - person Henry; 14.06.2010
comment
Я согласен, я просто сослался на случай, если у спрашивающего был CF7 или ниже. В противном случае эти функции - путь. - person Joe D; 15.06.2010

Если вы не можете нормализовать поля формы в правильную таблицу (таблицы), вы можете попробовать сохранить их:

  • в XML (SQL Server довольно хорошо поддерживает XML) или
  • в JSON (в простом поле varchar) или
  • ObjectLoad() и ObjectSave() (только CF9) для хранения в виде большого двоичного объекта.

IIRC есть способы получить функциональность загрузки/сохранения объектов в версиях до CF9, подключившись к Java. http://www.riaforge.org/ или http://cflib.org/ может иметь его.

person Henry    schedule 14.06.2010