2011-02-09 16 views
5

que estoy haciendo un sistema por al empresa que tiene una gran cantidad de trabajadores de campo que hay que llenar un montón de certificados en cada trabajo que hacen . Hacemos esto a través de una tableta que ejecuta un sistema mysql/php/apache que se sincroniza con el servidor principal.Cómo crear una forma "dinámica" - y almacenar datos y diseño de formularios en dos campos

Estos certificados cambian mucho, así que obtengo revisiones más nuevas todo el tiempo. Y si hago esto en una configuración de base de datos/php/html tradicional, estaría cambiando los diseños y las bases de datos para siempre, no para hablar sobre el manejo de las revisiones de diseños de certificados y datos. (agregando, eliminando campos)

Estoy buscando una manera en la que pueda diseñar fácilmente un formulario y almacenar su diseño y datos en una fila (en dos campos) - en mi base de datos mysql. De modo que cuando leo una fila específica, siempre puedo combinar el diseño correcto con sus datos. Esto se puede hacer a través de xforms, pero el navegador necesita un complemento para hacerlo. An xforms es tedioso.

Es bastante fácil de hacer con sólo los campos de texto, pero necesito casillas de verificación, listas y así sucesivamente ....

Cualquier intercambio de ideas se aprecia.

+0

puede que no haya comprendido plenamente su pregunta, ¿desea algún tipo de campos de formulario "modular" se puede armar de acuerdo a los diferentes certificados? (ex cer.1 necesita 3 entradas de texto y 1 casilla de verificación, cer.2 necesita 2 campos de texto y 2 selecciones, etc.) –

+0

Sí - y luego almacena los datos generados por eso. Como debo suponer que la forma nunca es la misma, necesito almacenar los datos y el formulario uno al lado del otro. – Anders

Respuesta

1

Consulte ValidForm es una gran biblioteca de código abierto para usuarios que manejan formularios. Esto no se encarga solamente de las formas en que maneja: Seguridad

  • Validación
  • cliente Seguridad
  • lado del servidor
  • Estilo
  • Mucho más!

Usted no puede ir mal con él y sobre todo es gratis y fácil de usar y creo que sería ideal para usted!

http://validformbuilder.org/

mejor de la suerte, Tyler Moore

1

probar esto.

crear una tabla con dos campos como usted ha dicho a continuación, utilizar un archivo CSV para almacenar su diseño y los datos en los dos campos de la tabla.

Por ejemplo

nameTxt, ageTxt, genderRdo, agreeChk xxx, 25, H, Sí

entonces usted puede explotar fácilmente esto usando

$ csvExplode = explode ("", $ fetchedData);

Mejor aún si desea información almacenada estilo, hacer una columna más y almacenar la información de estilo para cada uno del campo en ella.

esperanza esto ayuda

+0

No me gusta el aspecto de una "tienda en una tienda", pero prácticamente podría funcionar. Si tiene que ser una base de datos relacional tradicional, preferiría una tabla con nombres de campo y otra con valores relacionados con el nombre de campo respectivo. –

3

¿Qué pasa con el uso de un NoSQL como MongoDB para almacenar los certifacates? ¿Eso funcionaría para ti?

2

Si entiendo bien, está buscando especialmente una forma de guardar los datos del usuario en una base de datos, como se mencionó anteriormente puede cambiar su motor de base de datos a un dbe NoSQL o exportar los datos a CSV, JSON o utilizar php serialize() función.

Si quiere tener nombres de campo reales, puede usar varias tablas para almacenar los datos. La tabla principal solo tiene el tipo del certificado y el ID de los datos reales en otra tabla que guarda los datos para un certificado específico (y tal vez algunos datos generales, por ejemplo, una marca de tiempo).

Este método no es perfecto y requiere más código PHP y obtener datos similares de varias tablas, pero es el método que prefiero.

1

¿Qué hay de almacenar los datos en matrices multidimensionales, y luego usar la función php serialize() para ponerlo en la base de datos?

2

Quizás pueda usar un módulo de formulario de ZendFramework o los "me gusta" para generar un formulario, luego serializar el objeto y almacenarlo en la base de datos. Luego obtendrías buildt en validación y llenar ese formulario con datos de la base de datos sería trivial.

0

Crear una tabla con los siguientes campos:

  1. ID - PK/Incremento automático
  2. NombreCampo
  3. FieldType
  4. Obligatorio (verdadero/falso)

Entonces simplemente puede almacenar los valores en un sep erate tabla:

  1. ID
  2. FK_Field_ID - se refiere a la tabla de campos

También podría tener potencialmente una tabla formas que se refiere a la tabla de campos.

Siguiente Le sugiero que cree una clase de campos, es decir, CreateTextInput, CreateNumberInput, etc. Hice exactamente esto al sobrecargar los métodos. Lo siento, no puedo compartir el código, fue para un cliente.

Espero que esto ayude, IgnitedCoder.com

Cuestiones relacionadas