Foros del Web » Programando para Internet » Javascript »

insertar columna dinamicamente

Estas en el tema de insertar columna dinamicamente en el foro de Javascript en Foros del Web. Hola, a ver si alguein sabe como podria resolver esto. Tengo una tabla de una fila y dos columnas y quiero añadirle una columna dinamicamente, ...
  #1 (permalink)  
Antiguo 21/03/2005, 09:56
 
Fecha de Ingreso: febrero-2005
Mensajes: 198
Antigüedad: 19 años, 2 meses
Puntos: 5
insertar columna dinamicamente

Hola, a ver si alguein sabe como podria resolver esto.


Tengo una tabla de una fila y dos columnas y quiero añadirle una columna dinamicamente, en medio de las dos. Luego dentro de la columna(que sera la de enmedio) insertarle tambien dinamicamente un campo de texto.

Tendria que haber un boton que fuera por ejemplo "añadir" y que me añadiera unicamente una sola columna (con su campo de texto) por muchas veces que clicase. Deberia haber otro boton "elimnar" que eliminara la columna de enmedio y el campo

es complicado, yo lo estoy intentado y no se resolverlo.

a ver si aguien sabe de algun ejemplo donde me pueda inspirar.
  #2 (permalink)  
Antiguo 21/03/2005, 10:14
Avatar de JavierB
Colaborador
 
Fecha de Ingreso: febrero-2002
Ubicación: Madrid
Mensajes: 25.052
Antigüedad: 22 años, 2 meses
Puntos: 772
Hola occiso

Te dejo un poco de código:
Código PHP:
<html>
<
head>
<
script type="text/javascript">
function 
anadir() {
  
obj=document.getElementById('fila'); //fila donde se añadirá el nuevo elemento
  
obj2=document.getElementById('celda'); //celda delante de la que se añadirá
  
elem=document.createElement('td'); //creamos una celda (td)
  
elem.id='elemento'//le asignamos un identificador
  
obj.insertBefore(elem,obj2); //añadimos el nuevo elemento
  
txt=document.createElement('input'); //creamos un cuadro de texto
  
document.getElementById('elemento').appendChild(txt); //lo añadimos a la celda creada
  
document.getElementById('anadir').disabled=true;
  
document.getElementById('borrar').disabled=false;
}
function 
borrar() {
  
document.getElementById('fila').removeChild(document.getElementById('elemento'));
  
document.getElementById('anadir').disabled=false;
  
document.getElementById('borrar').disabled=true;
}
</script>
</head>
<body>
<table border="1">
<tr id="fila">
<td>celda1</td>
<td id="celda">Celda2</td>
</tr>
</table>
<input type="button" id="anadir" value="añadir" onclick="anadir()" />
<input type="button" id="borrar" value="borrar" onclick="borrar()" disabled="disabled" />
</body>
</html> 
Ten cuidado porque en las líneas .appendChild(txt); y .removeChild(document.getElementById.. aparece un espacio que no debería estar.

Saludos,

Última edición por JavierB; 21/03/2005 a las 10:17
  #3 (permalink)  
Antiguo 21/03/2005, 13:59
 
Fecha de Ingreso: febrero-2005
Mensajes: 198
Antigüedad: 19 años, 2 meses
Puntos: 5
Tio, de puta madre !!!

Mira que yo le estaba dando vueltas y no lo conseguia

gracias !!
  #4 (permalink)  
Antiguo 21/03/2005, 17:41
 
Fecha de Ingreso: febrero-2005
Mensajes: 198
Antigüedad: 19 años, 2 meses
Puntos: 5
Joder ahora estoy teniendo otro problema.

Tu para controlar que solo añadan uno le desabilitas los botones, sin embargo en mi problema yo no creo las columnas con botones y no se como puedo saber si la columna esta ya creada o no.

He pensado utilizar "hasChildNodes()" pero esata claro que fila tiene varias columnas no solo la que creo dinamicamente.


Luego he intentado usar "previousSibiling" pero no se como indicarle que si el anterior nodo hermano a "celda" es "elemento" es que existe y por tanto si vamos a insertar no nos debe dejar porque ya existe, pero si nos debe dejar eliminar si esa es la accion que ha de realizar. y viceversa si no existe no nos lo tiene que intentar borrar y si existe que lo borre.


espero haberme explicado con claridad
  #5 (permalink)  
Antiguo 22/03/2005, 03:08
Avatar de JavierB
Colaborador
 
Fecha de Ingreso: febrero-2002
Ubicación: Madrid
Mensajes: 25.052
Antigüedad: 22 años, 2 meses
Puntos: 772
Hola de nuevo.

Me he perdido un poco. ¿Podrías poner un ejemplo de la tabla que usas y lo que necesitas hacer?

saludos,
  #6 (permalink)  
Antiguo 22/03/2005, 06:33
 
Fecha de Ingreso: febrero-2005
Mensajes: 198
Antigüedad: 19 años, 2 meses
Puntos: 5
La verdad es que lo he explicado bastante mal.

Al final lo he resuelto poniendo una variable booleana global en javascript. Si estaba a "true" es que ya habia insertado la columna y si estaba a "false" no.



Mas tarde si tengo tiempo subire el codigo para que lo veais.
  #7 (permalink)  
Antiguo 26/03/2005, 13:22
(Desactivado)
 
Fecha de Ingreso: noviembre-2002
Ubicación: Ciudad Autónoma de Buenos Aires
Mensajes: 2.367
Antigüedad: 21 años, 5 meses
Puntos: 317
Hola todos :
Cita:
Iniciado por JavierB ( ) .
...Ten cuidado porque en las líneas .appendChild(txt); y .removeChild(document.getElementById.. aparece un espacio que no debería estar...
Habría que averiguar por qué. Yo tuve que corregir varios códigos por eso.

Les dejo un ejemplo que no siempre se puede usar

Código:
 
document.getElementById('elem').appendChild(txt);
saludos

furoya
  #8 (permalink)  
Antiguo 27/03/2005, 05:19
Avatar de JavierB
Colaborador
 
Fecha de Ingreso: febrero-2002
Ubicación: Madrid
Mensajes: 25.052
Antigüedad: 22 años, 2 meses
Puntos: 772
Cita:
Iniciado por furoya
Habría que averiguar por qué. Yo tuve que corregir varios códigos por eso.
Hola furoya

Hace algún tiempo puse un mensaje en el foro de administración, pero no ha tenido respuesta

http://www.forosdelweb.com/showthread.php?t=270170

Saludos,
  #9 (permalink)  
Antiguo 21/07/2012, 18:39
Avatar de fcco814  
Fecha de Ingreso: julio-2012
Ubicación: Ibague
Mensajes: 1
Antigüedad: 11 años, 9 meses
Puntos: 0
Respuesta: insertar columna dinamicamente

Buenas Noches pues la verdad soy nuevo en el foro y necesito ayuda por favor:


PROBLEMA....

estoy trabajando en html y tengo una tabla que debo insertarle filas con campos (input type="text" ) pero necesito es insertarle las filas enmedio de las filas que hay vean este es el codigo de la tabla:

table width="808" border="1" align="center" class="table" id="Cuadro1">
<tr>
<th width="122" rowspan="2" bgcolor="#CCCCCC">Nombre de Investigadores</th>
<th width="74" rowspan="2" bgcolor="#CCCCCC">Formación</th>
<th width="74" rowspan="2" bgcolor="#CCCCCC">Función en el proyecto</th>
<th width="74" rowspan="2" bgcolor="#CCCCCC">Tiempo Dedicación (H/Semana)</th>
<th width="62" rowspan="2" bgcolor="#CCCCCC">Duración</th>
<th colspan="4" bgcolor="#CCCCCC">Costos</th>
</tr>
<tr>
<th width="86" bgcolor="#CCCCCC">U.T. Adm. Central $</th>
<th width="86" bgcolor="#CCCCCC">Fondo de Invest. U.T. $</th>
<th width="86" bgcolor="#CCCCCC">Otros $</th>
<th width="86" bgcolor="#CCCCCC">Total $</th>
</tr>
<tr>
<td><input type="text" name="NombreInves" id="NombreInves" size="20" maxlength="50" onkeypress="return soloLetras(event)" /></td>
<td><input type="text" name="Formacion" id="Formacion" size="12" maxlength="50" onkeypress="return soloLetras(event)" /></td>
<td><input type="text" name="FuncionProy" id="FuncionProy" size="12" maxlength="50" onkeypress="return soloLetras(event)" /></td>
<td><input type="text" name="TiempoDedicado" id="TiempoDedicado" size="12" maxlength="10" onkeypress="return soloNumeros(event)" /></td>
<td><input type="text" name="Duracion" id="Duracion" size="10" maxlength="10" onkeypress="return soloNumeros(event)" /></td>
<td><input type="text" name="UTAdm" id="UTAdm" size="14" maxlength="10" onkeypress="return soloNumeros(event)" /></td>
<td><input type="text" name="FondoInvestigacion" id="FondoInvestigacion" size="14" maxlength="10" onkeypress="return soloNumeros(event)" /></td>
<td><input type="text" name="Otr" id="Otr" size="14" maxlength="10" onkeypress="return soloNumeros(event)" /></td>
<td><input type="text" name="Totl" id="Totl" size="14" maxlength="10" onkeypress="return soloNumeros(event)" /></td>
</tr>
<tr>
<td colspan="5"><b>Total Costo de Personal</b></td>
<td><input name="TotUTAdm" type="text" id="TotUTAdm" size="14" maxlength="10" readonly="readonly" /></td>
<td><input name="TotFondoInvestigacion" type="text" id="TotFondoInvestigacion" size="14" maxlength="10" readonly="readonly" /></td>
<td><input name="TotOtr" type="text" id="TotOtr" size="14" maxlength="10" readonly="readonly" /></td>
<td><input name="TotTotl" type="text" id="TotTotl" size="14" maxlength="10" readonly="readonly" /></td>
</tr>
</table>


y voy al punto necesito insertar filas en medio de las filas 2 y 3 si alguien me podria ayudar se lo agradesco y porfa que sea por javascript
  #10 (permalink)  
Antiguo 21/07/2012, 21:02
(Desactivado)
 
Fecha de Ingreso: noviembre-2002
Ubicación: Ciudad Autónoma de Buenos Aires
Mensajes: 2.367
Antigüedad: 21 años, 5 meses
Puntos: 317
Respuesta: insertar columna dinamicamente

¿Sabes fcco814? Tenemos un problema.

De un tiempo para acá se está llenando el Foro de gente que viene a molestar inventando planteos que ya fueron resueltos mil veces, en algunos casos porque ni buscaron, pero en otros, porque saben que antes de postear nada deben buscar. O se los vamos a tener que recordar y ya no de buenos modos, porque nos hartaron.

Así fueron escalando en prácticas que están mal vistas en el sitio, llegando a las últimas modas, que son postear código incompleto y fuera de las etiquetas de código; y resucitar temas muy viejos con debates que ya fueron actualizados y mejorados con los años.

En lo personal, de eso último yo mucho no me quejo, pero es una política del Foro que se evite la resurrección de temas anteriores a 6 meses (¿viste el cartelito rojo?). por lo tanto la tengo que respetar siempre que sea posible.

Así que recién llegas, y ya te estás exonerando el vientre sobre nuestras normas.
Y encima tengo toda la impresión de que estás pidiendo que te resuelvan un tema de examen.
Pero esto último es una opinión personal. También puede que estés haciendo un trabajo comercial.



Busca mejor, que la respuesta ya está por ahí.


¡Y bienvenido al Foro!
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 07:34.