Foros del Web » Programando para Internet » Javascript »

¿ Cómo hacer editable una tabla de html ?

Estas en el tema de ¿ Cómo hacer editable una tabla de html ? en el foro de Javascript en Foros del Web. Hola amigos del foro, espero que esten todos bien. Como lo escribo en el titulo necesito hacer que una tabla de html sea totalmete editable, ...
  #1 (permalink)  
Antiguo 17/06/2009, 07:30
 
Fecha de Ingreso: junio-2009
Mensajes: 55
Antigüedad: 14 años, 10 meses
Puntos: 1
¿ Cómo hacer editable una tabla de html ?

Hola amigos del foro, espero que esten todos bien.

Como lo escribo en el titulo necesito hacer que una tabla de html sea totalmete editable, mas o menos como lo es en excel o una tabla del word, que se pueda editar una celda, aumentar filas, eliminar filas, ponerle un tipo de letra a un determinado contenido de una celda y cosas asi, me imagino que con javascript es esto posible.

Espero que alguien me pueda ayudar, gracias de antemano.
  #2 (permalink)  
Antiguo 17/06/2009, 07:58
Avatar de Adler
Colaborador
 
Fecha de Ingreso: diciembre-2006
Mensajes: 4.671
Antigüedad: 17 años, 4 meses
Puntos: 126
Respuesta: ¿ Cómo hacer editable una tabla de html ?

Hola, bienvenido al foro

Esto sería un inicio

Código javascript:
Ver original
  1. <html><head>
  2. <title>Agregar fila de campos DINAMICOS</title>
  3.  
  4. <script type="text/javascript">
  5. function adicionarFila(){
  6. var cont = document.getElementById("cont");
  7. var filas = document.getElementById("filas");
  8. cont.setAttribute("value", parseInt(cont.value,0)+1);
  9. var tabla = document.getElementById("contenido").tBodies[0];
  10. var fila = document.createElement("TR");
  11. fila.setAttribute("align","center");
  12.  
  13. var celda1 = document.createElement("TD");
  14. var codigo = document.createElement("INPUT");
  15. codigo.setAttribute("type","text");
  16. codigo.setAttribute("size","8");
  17. codigo.setAttribute("maxlength","20");
  18. codigo.setAttribute("name","codigo" + cont.value);
  19. celda1.appendChild(codigo);
  20.  
  21. var celda2 = document.createElement("TD");
  22. var sel = document.createElement("SELECT");
  23. sel.setAttribute("size","1");
  24. sel.setAttribute("name","sel" + cont.value);
  25. opcioncur = document.createElement("OPTION");
  26. opcioncur.innerHTML = '';
  27. opcioncur.value = '';
  28. sel.appendChild(opcioncur);
  29.  
  30. opcion1 = document.createElement("OPTION");
  31. opcion1.innerHTML = "este Select depende de lo que";
  32. opcion1.value = "este Select depende de lo que";
  33. sel.appendChild(opcion1);
  34.  
  35. opcion2 = document.createElement("OPTION");
  36. opcion2.innerHTML = "se ponga en el anterior campo";
  37. opcion2.value = "se ponga en el anterior campo";
  38. sel.appendChild(opcion2);
  39.  
  40. celda2.appendChild(sel);
  41.  
  42. var celda3 = document.createElement("TD");
  43. var valorA = document.createElement("INPUT");
  44. valorA.setAttribute("type","text");
  45. valorA.setAttribute("size","1");
  46. valorA.setAttribute("maxlength","3");
  47. valorA.setAttribute("name","valorA" + cont.value);
  48. celda3.appendChild(valorA);
  49.  
  50. var celda4 = document.createElement("TD");
  51. var valorB = document.createElement("INPUT");
  52. valorB.setAttribute("type","text");
  53. valorB.setAttribute("size","1");
  54. valorB.setAttribute("maxlength","3");
  55. valorB.setAttribute("name","valorB" + cont.value);
  56. celda4.appendChild(valorB);
  57.  
  58. var celda5 = document.createElement("TD");
  59. var valorC = document.createElement("INPUT");
  60. valorC.setAttribute("type","text");
  61. valorC.setAttribute("size","1");
  62. valorC.setAttribute("maxlength","3");
  63. valorC.setAttribute("name","valorC" + cont.value);
  64. //onfocus="fc(this)"
  65. celda5.appendChild(valorC);
  66.  
  67. var celda6 = document.createElement('TD');
  68. var boton = document.createElement('INPUT');
  69. boton.setAttribute('type','button');
  70. boton.setAttribute('value','borrar');
  71. boton.onclick=function(){borrarFila(this);}
  72. celda6.appendChild(boton);
  73.  
  74. fila.appendChild(celda1);
  75. fila.appendChild(celda2);
  76. fila.appendChild(celda3);
  77. fila.appendChild(celda4);
  78. fila.appendChild(celda5);
  79. fila.appendChild(celda6);
  80.  
  81. tabla.appendChild(fila);
  82. }
  83. function borrarFila(button){
  84. var fila = button.parentNode.parentNode;
  85. var tabla = document.getElementById('contenido').getElementsByTagName('tbody')[0];
  86. tabla.removeChild(fila);
  87. }
  88.  
  89.  
  90. function fc(campo) {
  91.     var n=parseInt(campo.name.substr(6),10);
  92.     var    a=campo.form.elements["valorA"+n];
  93.     var    b=campo.form.elements["valorB"+n];
  94.     var na=parseFloat(a);
  95.     var nb=parseFloat(b);
  96.     if (isNaN(na)) { na=0; }
  97.     if (isNaN(nb)) { nb=0; }
  98.     campo.value=na+nb;
  99.     campo.blur();
  100. }
  101. </script>
  102. </head>
  103. <body onLoad="adicionarFila()">
  104. <Form name="detalle" action="ej.asp" method="get">
  105. <input name="cont" type="hidden" id="cont" value="0" >
  106. <input name="filas" type="hidden" id="filas" value="" >
  107. <table align=center width=20% cellpadding=0 cellspacing=0 id="contenido" border="1">
  108. <tr align="center">
  109. <td>codigo</td>
  110. <td>Select dependiente de Codigo</td>
  111. <td>A +</td>
  112. <td>B =</td>
  113. <td>C</td>
  114. <td>&nbsp;</td>
  115. </tr>
  116. </table>
  117. <table align=center width=20% cellpadding=0 cellspacing=0 border="1">
  118. <tr>
  119. <td>&nbsp;</td>
  120. </tr>
  121. <tr align="center">
  122. <td align="CENTER"><input name="enviar" type="submit" id="enviar" value="enviar" onClick="filas.value=cont.value, cont.value=0">
  123. <input name="nueva_fila" type="button" id="nueva_fila" value="nueva fila" onClick="adicionarFila()"></td>
  124. </tr>
  125. </table>
  126. </form>
  127. </body>
  128. </html>

Suerte
__________________
Los formularios se envían/validan con un botón Submit
<input type="submit" value="Enviar" style="background-color:#0B5795; font:bold 10px verdana; color:#FFF;" />
  #3 (permalink)  
Antiguo 17/06/2009, 09:35
 
Fecha de Ingreso: junio-2009
Mensajes: 55
Antigüedad: 14 años, 10 meses
Puntos: 1
Respuesta: ¿ Cómo hacer editable una tabla de html ?

gracias por la rapida respuesta, lo que me respondiste es mas o menos lo que estaba buscando, ha una cosa mas que me olvide es que tb se pueda subir o bajar filas, y que la celda solo sea editable cuando yo haga doble click sobre ella y cuando haga click fuera de ella se mestre como una celda normal. o si conoces del alguna libreria en javascript que ya haga todo eso tb estaria bien.

Espero que en eso mas me puedas colaborar, nuevamente gracias.
  #4 (permalink)  
Antiguo 17/06/2009, 12:32
Avatar de Adler
Colaborador
 
Fecha de Ingreso: diciembre-2006
Mensajes: 4.671
Antigüedad: 17 años, 4 meses
Puntos: 126
Respuesta: ¿ Cómo hacer editable una tabla de html ?

Hola

Hace bastante tiempo, creo que vi algo en Mootool junto con Ajax que hacía algo de eso

Suerte
__________________
Los formularios se envían/validan con un botón Submit
<input type="submit" value="Enviar" style="background-color:#0B5795; font:bold 10px verdana; color:#FFF;" />
  #5 (permalink)  
Antiguo 17/06/2009, 15:19
 
Fecha de Ingreso: junio-2009
Mensajes: 55
Antigüedad: 14 años, 10 meses
Puntos: 1
Sonrisa Respuesta: ¿ Cómo hacer editable una tabla de html ?

Gracias Adler, vi esa libreria y me parece muy pero muy buena tiene todas las cosas que necesito. gracias nuevamente
  #6 (permalink)  
Antiguo 08/12/2009, 10:15
 
Fecha de Ingreso: julio-2009
Mensajes: 5
Antigüedad: 14 años, 9 meses
Puntos: 0
Respuesta: ¿ Cómo hacer editable una tabla de html ?

hola...
muy bueno el script ese para las tablas me paece super, te pido permiso para ponerlo en mi web, ahora... una preguntota como recupero los datos de la tabla???

Muchisimas gracias...
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 19:18.