2013-11-19 2 views
0

Я создаю веб-сайт. В нем лицо, поддерживающее сайт, должно иметь возможность создавать динамические формы и сохранять их в базе данных. Позже другие пользователи должны иметь доступ к этим формам и вводить данные, используя те формы, которые создаются обслуживающим персоналом.Загрузить форму из базы данных

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

+0

Не обязательно нужно создать форму, используя 'PHP echo'. Изучите и используйте 'Ajax' для загрузки и отображения формы. Ajax предназначен для этого самого приложения. –

ответ

1

Самый простой способ, я могу себе представить, чтобы это сделать: сериализуйте поля формы и сохраните их в одном поле в db. При получении формы из db используйте функцию unserialize и проанализируйте каждый элемент. Таким образом, у вас нет ограничений на количество полей и типов.

Проверьте это: http://php.net/manual/en/function.serialize.php

Недостатком этого метода является то, что вы не сможете получить доступ к одному полю формы независимо друг от друга. Сначала вы должны получить всю форму и сначала несериализировать ее.

Другой способ заключается в использовании двух таблиц:

  1. Форма таблица, которая содержит основную информацию о форме (как form_id, действия, метод)

  2. Form_fields таблицы, которая имеет поле каждая форма. Они связаны индексом form_id.

Что-то вроде этого: enter image description here

+1

сериализационный канал может использоваться только для обработки данных с использованием метода GET, в котором возникают некоторые проблемы с безопасностью. serializeArray - лучший метод. –

+0

Сначала обработайте данные $ _GET. Я не предлагал сериализовать его напрямую. И, кстати, @UdayHiwarale, я говорю о части PHP. –

+0

Привет, Dănuţ Mihai Florian, спасибо, что ответили. Я никогда не использовал serielize() раньше. Сохраняет ли моя форма fieilds как строку? Могу ли я получить доступ к моим полям громоздким способом, не получая их один за другим? – t4thilina

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