Foros del Web » Programando para Internet » Javascript »

Crear elementos con javascript

Estas en el tema de Crear elementos con javascript en el foro de Javascript en Foros del Web. buenas tardes tengo el siguiente archivo html. <div id=divjugadores> <form id=fjugadores name=fjugadores> <div id=divcontenidojugadores> <table><tr> <td>equipo por defecto</td><td><select name=cbequipodefecto id=cbequipodefecto><option value="1">seleccione el equipo</option></select></td> </tr> </table> ...
  #1 (permalink)  
Antiguo 23/09/2010, 14:26
 
Fecha de Ingreso: enero-2010
Mensajes: 247
Antigüedad: 14 años, 3 meses
Puntos: 2
Crear elementos con javascript

buenas tardes tengo el siguiente archivo html.

<div id=divjugadores>
<form id=fjugadores name=fjugadores>

<div id=divcontenidojugadores>
<table><tr>
<td>equipo por defecto</td><td><select name=cbequipodefecto id=cbequipodefecto><option value="1">seleccione el equipo</option></select></td>
</tr>
</table>

<div id=divjugadoresline>
<table>
<tr><td align="right">Nombres: *</td><td><input name=ednom1 id="ednom" type=text maxlength=30/></td></tr>
<tr><td align="right">Apellidos: *</td><td><input name=edape1 id=edape type=text maxlength=30/></td></tr>
<tr><td align="right">Identificación: *</td><td><input name=ediden1 id=ediden type=text maxlength=15/></td></tr>
<tr><td align="right">Dirección:</td><td><input name=eddir1 id=eddir type=text maxlength=30/></td></tr>
<tr><td align="right">Teléfono:</td><td><input name=edtel1 id=edtel type=text maxlength=21/></td></tr>
<tr><td align="right">Fecha de nacimiento:</td><td><input name=edfec1 id=edfec type=text maxlength=30/></td></tr>
<tr><td align="right">Equipo al que pertenece: *</td><td><select name=cbfecha id=cbfecha><option value="1">seleccione el equipo</option></select></td></tr>

</table>
</div>

</div>
<input type="button" value="Crear" onclick="crear(this)" /></form>
</div>

lo que quiero es que al dar clic en un boton "crear" cree una nueva tabla con todos los elementos anteriormente descritos justo debajo de la misma y asi sucesivamente las veces que el usuario lo desee.

en java tengo el siguiente codigo que me permite crear elelmentos, asi :

function crear(obj) {

fi = document.getElementById('divcontenidojugadores');

contenedor = document.createElement('div');
contenedor.id = 'divjugadoresline';
fi.appendChild(contenedor);
}

pero no se como agregar una tabla completa como la que les mostre.

les agradesco su ayuda.
  #2 (permalink)  
Antiguo 23/09/2010, 14:34
Avatar de _cronos2
Colaborador
 
Fecha de Ingreso: junio-2010
Mensajes: 2.062
Antigüedad: 13 años, 11 meses
Puntos: 310
Respuesta: Crear elementos con javascript

Los id y los name tienen que ir entrecomillados. Para hacer eso creo que vale este código:
Código Javascript:
Ver original
  1. function crear(c){
  2.  var clon = c.previousSibling.cloneNode(true);
  3.  c.previousSibling.appendChild(clon);
  4. }
Si no te funciona dímelo, porque no estoy seguro de si el código es así.
Saludos (:
__________________
" Getting older’s not been on my plans
but it’s never late, it’s never late enough for me to stay. "
Cigarettes - Russian Red
  #3 (permalink)  
Antiguo 23/09/2010, 15:08
 
Fecha de Ingreso: enero-2010
Mensajes: 247
Antigüedad: 14 años, 3 meses
Puntos: 2
Respuesta: Crear elementos con javascript

Gracias _cronos2 por su respuesta pero si hago una copia de la tabla de arriba copia todos los elementos iguales cierto ? yo necesito crear todos los elementos pero con nombres diferentes para cuando valla a guardar en la bd diferenciarlos.

pero en todo caso que valor le paso a la funcion crear(?) quien es c ?
Gracias.
  #4 (permalink)  
Antiguo 23/09/2010, 15:33
Avatar de _cronos2
Colaborador
 
Fecha de Ingreso: junio-2010
Mensajes: 2.062
Antigüedad: 13 años, 11 meses
Puntos: 310
Respuesta: Crear elementos con javascript

Pues entonces ya es , más que complicado, bastante más largo. Tienes que definir cada tabla, td, tr, input... y sus propiedades, o bien usar innerHTML y cambiar los ids y los names, que supongo que es lo más factible. Para eso sería una función así:
Código Javascript:
Ver original
  1. var n = 2;
  2. function crear(id){
  3.  document.geElementById(id).innerHTML += '<table><tr>
  4. <td>equipo por defecto</td><td><select name=cbequipodefecto id=cbequipodefecto><option value="1">seleccione el equipo</option></select></td>
  5. </tr>
  6. </table>
  7.  
  8. <div id=divjugadoresline>
  9. <table>
  10. <tr><td align="right">Nombres: *</td><td><input name=ednom'+n+' id="ednom" type=text maxlength=30/></td></tr>
  11. <tr><td align="right">Apellidos: *</td><td><input name=edape'+n+' id=edape type=text maxlength=30/></td></tr>
  12. <tr><td align="right">Identificación: *</td><td><input name=ediden'+n+' id=ediden type=text maxlength=15/></td></tr>
  13. <!-- etc, etc -->
  14. </table>';
  15.  n++;
  16. }
Evidentemente, a los atributos tendrías que ponerles comillas pero en este caso sólo podrías poner las dobles ("), porque las simples son las que definen el innerHTML. Lo de crear(c), ahí c es un argumento que se le pasa a la función, en la función no significa nada, pero cuando vas a ejecutar la función (onclick='crear(this);'), donde estaba c se cambia por el argumento que le pases, en este caso this, por tanto cambiaría c.previousSibling por this.previousSibling, y así sucesivamente.
Saludos (:
__________________
" Getting older’s not been on my plans
but it’s never late, it’s never late enough for me to stay. "
Cigarettes - Russian Red
  #5 (permalink)  
Antiguo 23/09/2010, 15:58
 
Fecha de Ingreso: enero-2010
Mensajes: 247
Antigüedad: 14 años, 3 meses
Puntos: 2
Respuesta: Crear elementos con javascript

muchas gracias de nuevo, pero el codigo que me envias hay no me funciona me sacar error, pero no se donde podrias revisarlo, gracias

var n = 2;
function crear(id){

document.geElementById(id).innerHTML += '
<div id=divjugadoresline>
<table>
<tr><td align="right">Nombres: *</td><td><input name=ednom'+n+' id="ednom" type=text maxlength=30/></td></tr>
<tr><td align="right">Apellidos: *</td><td><input name=edape'+n+' id=edape type=text maxlength=30/></td></tr>
<tr><td align="right">Identificación: *</td><td><input name=ediden'+n+' id=ediden type=text maxlength=15/></td></tr>
</table>';

n++;

}
  #6 (permalink)  
Antiguo 23/09/2010, 16:00
Avatar de _cronos2
Colaborador
 
Fecha de Ingreso: junio-2010
Mensajes: 2.062
Antigüedad: 13 años, 11 meses
Puntos: 310
Respuesta: Crear elementos con javascript

¿Qué error te da? Míralo en la consola de errores. Y pon las comillas a los atributos, porque a lo mejor es por eso.
__________________
" Getting older’s not been on my plans
but it’s never late, it’s never late enough for me to stay. "
Cigarettes - Russian Red
  #7 (permalink)  
Antiguo 23/09/2010, 16:19
 
Fecha de Ingreso: enero-2010
Mensajes: 247
Antigüedad: 14 años, 3 meses
Puntos: 2
Respuesta: Crear elementos con javascript

este es el error,
Error: unterminated string literal
Archivo de origen: http://localhost/script.js
Línea: 594, columna: 40
Código fuente: document.geElementById(id).innerHTML += '

gracias me marca la comilla
  #8 (permalink)  
Antiguo 24/09/2010, 07:15
 
Fecha de Ingreso: enero-2010
Mensajes: 247
Antigüedad: 14 años, 3 meses
Puntos: 2
Respuesta: Crear elementos con javascript

Gracias amigo ya solucione el problema, la idea ahora es que uno de los elementos creados es un <select> y las opciones de éste deben ser el resultado de una consulta, he hecho esto
document.geElementById(id).innerHTML += 'otros elementos <?php consultaSQL ?>'; le paso al innerHTML el php necesario pero no me funciona, como puedo hacer esto ? o se podria hacer para cumplir mi requerimiento ?

gracias de nuevo.
  #9 (permalink)  
Antiguo 24/09/2010, 07:25
Avatar de _cronos2
Colaborador
 
Fecha de Ingreso: junio-2010
Mensajes: 2.062
Antigüedad: 13 años, 11 meses
Puntos: 310
Respuesta: Crear elementos con javascript

No tengo ni idea, si viene alguien que sepa más que yo, o si no prueba en el foro de PHP, aunque no creo que el problema sea de eso.
Saludos (:
__________________
" Getting older’s not been on my plans
but it’s never late, it’s never late enough for me to stay. "
Cigarettes - Russian Red

Etiquetas: elementos
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 21:46.