Foros del Web » Programando para Internet » Javascript »

Formulario dinámico para llenar tabla.

Estas en el tema de Formulario dinámico para llenar tabla. en el foro de Javascript en Foros del Web. Hola, tengo el siguiente problema, tengo que crear un formulario, pero donde el usuario coloque la cantidad de campos a crear, ya que tengo que ...
  #1 (permalink)  
Antiguo 21/01/2011, 10:17
 
Fecha de Ingreso: mayo-2009
Ubicación: Concepción
Mensajes: 27
Antigüedad: 15 años, 6 meses
Puntos: 0
Pregunta Formulario dinámico para llenar tabla.

Hola, tengo el siguiente problema, tengo que crear un formulario, pero donde el usuario coloque la cantidad de campos a crear, ya que tengo que hacer un sistema web, donde existe una tabla en una base de datos, que posee "n cantidad de atributos" y el usuario tiene que tener la facilidad de poder ingresarle más atributos a dicha tabla por medio de algún formulario web y sin que se repitan los que ya existe, es decir, lo óptimo sería que además pudiera ver los que existen y luego seguir creando más.

Algo se ma ocurrido para que el usuario ingresara el número de campos a crear, pero como no me manejo en javascript, tengo la duda de cómo realizarlo:

Código HTML:
Atributo existente 1
Atributo existente 2
Atributo existente ..
Atributo existente n

Numero de campos:
<input type="text" name="numero_campos" >
<input type='button' name='btn' value='Aplicar'> 
y luego de eso, aparezcan, en base al número que colocó, los campos de texto a llenar, si colocó 3, que muestre:

Código HTML:
<input type="text" name="campo_1"><br>
<input type="text" name="campo_2"><br>
<input type="text" name="campo_3"><br> 
Ahora bien, una vez echo eso, que creo que se puede hacer con javascript, tengo que mandar los valores a otra página, cómo hago eso? para que quede algo así?

Código HTML:
Atributo existente 1
Atributo existente 2
Atributo existente ..
Atributo existente n

<form name="formulario" action="otraPagina.php" method="post">

<input type="text" name="numero_campos" >
<input type='button' name='btn' value='Aplicar'>

<input type="text" name="campo_1"><br>
<input type="text" name="campo_2"><br>
<input type="text" name="campo_3"><br>

<input type="Submit" value="Enviar">
</form> 
La idea, y como dije en un principio, es poder tomar esos valores del formulario, enviarlos a "otraPagina.php" y que ahí se introduzcan como atributos en la tabla, algo como por ejemplo:

Código PHP:

$numero_campos
;

$campo_1 $_POST["campo_1"];
$campo_2 $_POST["campo_2"];
$campo_3 $_POST["campo_3"];

for( 
$i=1$i<=$numero_campos$i++ )
{
mysql_query "ALTER TABLE 'equipo' ADD '$campo_1' VARCHAR( 20 ) NOT NULL" ;

Esto último tampoco sé como hacerlo, porque se debe envíar también el número de campos a crear y además ir cambiando la variable que aparece después del ADD $campo_1, por la siguiente.

Estoy realizando el sistema con php y mysql, pero no me manejo en javascript
La tabla se llama así "equipo"
HELP!

Última edición por dibustosb; 21/01/2011 a las 10:42 Razón: Actualización de datos.
  #2 (permalink)  
Antiguo 21/01/2011, 11:58
Avatar de goteen_mx  
Fecha de Ingreso: abril-2005
Ubicación: D.F.
Mensajes: 403
Antigüedad: 19 años, 7 meses
Puntos: 37
Respuesta: Formulario dinámico para llenar tabla.

Mi estimado yo creo que tu problema es más de concepto, creo yo que quieres hacer una especie de generador de formatos automatico. Hice algo así hace algunos ayeres.

Dado que no puedes tener tablas de "n" campos, si no imaginate un formulario de 200 preguntas, tendrias 200 campos, ademas darle permisos de Alter a las tablas no es muy adecuado.

Lo que necesitas es digo a grandes razgos son algunas tablas que te termitan identificar los formularios de cada uno de los usuario y sus respuestas p.ej.

TablaCampos
IdCampo
CampoDescripcion
Tipo

TablaRespuesta
IdRespuesta
IdFormulario
IdCampo
Respuesta

TablaFormulario
IdFormulario
NombreFormulario
IdUsuario

TablaFormularioCampos
IdFormulario
IdCampo


Saludos.
  #3 (permalink)  
Antiguo 21/01/2011, 20:03
 
Fecha de Ingreso: mayo-2009
Ubicación: Concepción
Mensajes: 27
Antigüedad: 15 años, 6 meses
Puntos: 0
Respuesta: Formulario dinámico para llenar tabla.

Ah no, con lo de "n atributos" me refería que no eran infinitos si no que una cantidad inexacta, la tabla "equipos" en la actualidad tiene 20 atributos, y tiene que tener la facilidad de ingresarle más atributos. Lo que pasa es que el problema parte con que tengo lo siguiente:

Existen Equipos, los cuales se dividen como en 12 tipos de equipo, cada equipo posee sus atributos pero varios de ellos coinciden, pero no todos, entonces consultando con profesores, de qué sería lo óptimo, de como plantearlo en una base de datos, me plantearon que creara una tabla con todos los atributos y otra tabla, "tipo de equipo ", con el id del atributo y su nombre, donde acutalmente hay 12 nombres con sus id.

Entonces cada vez que llegara un equipo nuevo que no estubiera dentro de esos 12, solo bastaba con ingresar uno nuevo a la tabla de "tipos de equipo" y que en la tabla de atributos rellenara con lo que correspondía para ese tipo de equipo, por ejemplo un tipo de equipo es: Bomba y tiene 18 atributos de los 20, otro es Test de Jarra y tien 10 atributos de los 20 y así.

Entonces lo que buscaba con esto, era crear la opción o módulo, de ingresar un nuevo equipo, insertanado nuevos atributos a la tabla "equipos"

  #4 (permalink)  
Antiguo 22/01/2011, 17:47
Avatar de goteen_mx  
Fecha de Ingreso: abril-2005
Ubicación: D.F.
Mensajes: 403
Antigüedad: 19 años, 7 meses
Puntos: 37
Respuesta: Formulario dinámico para llenar tabla.

En mi opinión no es funcional ni seguro agragarle campos a la tabla, eso solo lo debe de hacer el DBA, yo como te comenté hice una tabla catalogo que en tu caso podria contener todos los campos pero a manera de registros es decir

TlbCatCampos
Id Campo
1 nombre
2 direccion
3 telefono

y una tabla de relacion CatCampos Equipo

TlbCatCamposEquipo
Id IdCatCampo IdEquipo
1 1 1
2 2 1
3 3 1
4 1 2
con esto tienes un catalogo de preguntas y respuestas variable, solo basta con agregarle una pregunta mas a TlbCampos y su relación en TlbCatCamposEquipo

Ahora falta el guardado de las respuestas, para eso necesitas otra tabla de que te indique quien respondio dado que es una por equipo, en la respuesta anterior te puse formulario, por si algun equipo pudiera tener mas de un formulario, pero por tu DB parece que no, entonces solo con una tabla de respuesta basta

TlbResp
IdResp idEquipo, Id Campo, Respuesta
1 1 1 NombreEquipo
2 1 2 La direccion de mi equipo
3 1 3 6577-4434
4 2 1 Nombre equipo2

Espero haberte ayudado y no confundico más, pero consultalo con tus profesores o pasa por el foro de DB, creo que es más funcional a agregarle campos a la base, además de que n campos tampoco me referia a infinito, si no a que no sabes cuantos atributos va a tener , también te recomiendo que busques Normalizaciones de bases de datos, tembién te puede servir :)

Saludos.
  #5 (permalink)  
Antiguo 22/01/2011, 21:30
 
Fecha de Ingreso: diciembre-2007
Mensajes: 467
Antigüedad: 16 años, 11 meses
Puntos: 3
Respuesta: Formulario dinámico para llenar tabla.

Hola dibustosb:

Lo que planteas no es tan difícil como suena, al menos, eso creo, en principio!
Decíme si me equivoco: la página va a tener un campo de texto en el que el navegante pone un número y un botón. Si el navegante pone 5, al presionar el botón, aparecen 5 cuadros de texto y otro botón. El navegante entonces escribe en esos 5 cuadros de texto y al presionar el botón, esos datos se envían a una página PHP y los datos se cargan en una tabla. Es así más o menos lo que necesitás?
Si es esto, te puedo ayudar!
Espero tu respuesta.


Federico
  #6 (permalink)  
Antiguo 23/01/2011, 00:18
Avatar de goteen_mx  
Fecha de Ingreso: abril-2005
Ubicación: D.F.
Mensajes: 403
Antigüedad: 19 años, 7 meses
Puntos: 37
Respuesta: Formulario dinámico para llenar tabla.

efectivamente Fede es más sencillo, es por eso que comentaba que es más de concepto que de desarrollo, por que lo que él quiere hacer es una tabla donde vayan creciendo los campos, lo cual no me parece una buena solución, con lo respecta el guardar 5 inputs en una tabla no es nada del otro mundo, lo que realmente es complicado es el tener claro que se quiere hacer y el elaborar un diseño que cumpla con el objetivo del sistema.
  #7 (permalink)  
Antiguo 26/01/2011, 22:04
 
Fecha de Ingreso: mayo-2009
Ubicación: Concepción
Mensajes: 27
Antigüedad: 15 años, 6 meses
Puntos: 0
Respuesta: Formulario dinámico para llenar tabla.

Hola, es que usando uno u otro método tengo que crear un formulario donde el usuario finalmente escriba la cantidad de valores a introducir que se reflejaran en la cantidad de "input type text" a mostrar y que luego esos valores sean enviados a una página php. Agradecería poder mostrar como poder isar este método, agradecería a fede1976 poder escribir su respuesta.

Saludos :D
  #8 (permalink)  
Antiguo 26/01/2011, 23:21
Avatar de Perr0  
Fecha de Ingreso: mayo-2005
Ubicación: Santiago de Chile, Chile
Mensajes: 676
Antigüedad: 19 años, 5 meses
Puntos: 79
Respuesta: Formulario dinámico para llenar tabla.

buenas noches, me parece que tu pregunta va enfocada a PHP que a Javascript, bueno...

cuando crees los input text:
- indiferente a si quieres ingresar nº de campos o nº de registros.
- indiferente a si quieres usar DOM o simplemente tener ocultos y mostrarlos o el método que sea.

definido eso por ti, deberas crearlos de esta forma (lo digo asi porque es como trabajo, puedes usar otra forma que te señalen):

<input type="text" name="campo[0]"><br>
<input type="text" name="campo[1]"><br>
<input type="text" name="campo[2]"><br>

luego en php debieras recibirlos de esta forma:

Código PHP:
Ver original
  1. <?
  2. $todosloscampos=$_POST["campos"];
  3. foreach($todosloscampos as $id=>$texto){
  4.   //LUEGO LE DAS A TU OPERACION
  5.   mysql_query = "ALTER TABLE 'equipo' ADD '$texto' VARCHAR( 20 ) NOT NULL" ;
  6. }
  7. ?>
me imagino que esto es operacion de hacerlo una sola vez, no puedes estar alterando el numero de campos cada cierto tiempo, si lo puedes alterar para nuevas tablas que vayas agregando.

Ahora como concepto te sugiero que definas bien los id y siempre crece para abajo y no en ancho, que quier decir con esto, te puede ser mas conveniente trabajar con un solo campo (aparte del resto que componen la tabla), trabajar con otra tabla definida con dos campos, un id identico al del anterior e ingresar en esta última si quieres 2, 3, 4 o mas registros en vez de campos, luego al hacer un join a ambas tablas tendrás 2, 3 ,4 o mas registros.

como ejemplo
Tabla1
Nombre, Ciudad, Hijos


me imagino que si el individuo tiene 5 hijos necesitas dejarla asi

Nombre, Ciudad, Hijos,Hijo1,Hijo2,Hijo3,Hijo4,Hijo5

y luego rellenar


lo que te digo es que hagas esto dos tablas
Tabla1
Nombre, Ciudad, Hijos


y

Tabla2
IdHijo, Nombre


en una colocaras
Juan, Guachinton, 234274

ojo 234274 será un id autoincremental

en la Tabla2 coloras

234274, Hugo
234274, Pelao
234274, Chancho
234274, Burro
234274, Perro

al cruzarlos cada uno de la tabla 2 esta relacionado con Juan

bueno eso y salu2...disculpa la lata
__________________
Numerador Mp3 en Access =)
http://www.mediafire.com/download/r9...pdw/mp3(2).zip

Etiquetas: llenar, tablas, formulario
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 16:57.