Ver Mensaje Individual
  #2 (permalink)  
Antiguo 09/11/2011, 11:17
maryi9003
 
Fecha de Ingreso: noviembre-2011
Ubicación: bogota
Mensajes: 9
Antigüedad: 12 años, 6 meses
Puntos: 0
Respuesta: suma php y javascript

tambien encontre este codigo pero no se como asociar la suma añade columnas y filas y las suma pero yo quiero que mis columnas esten fijas y lo unico que aumente son las filas agradesco mucho que alguien me puede colavorar aqui el lick

http://celucentro.webcindario.com/editartabla.html

y el codigo por si le sirve a alguien

la tabla
Código HTML:
Ver original
  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
  2.   "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
  3.  
  4. <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="es">
  5. <title>Editar datos de una tabla</title>
  6. <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
  7. <link rel="stylesheet" type="text/css" href="editatabla/estilotabla.css" />
  8. <script type="text/javascript" src="editatabla/codigo.js"></script>
  9. </head>
  10. <body onload="iniciarTabla()">
  11. <table id="tabla">
  12. <tr class="cabeza">
  13. <td class="orden">&nbsp;</td><td>&nbsp;</td>
  14. <td>&nbsp;<img src="editatabla/anadir.gif" alt="añadir columna" />&nbsp;<img src="editatabla/menos.gif" alt="borrar columna" /></td>
  15. <td>&nbsp;<img src="editatabla/anadir.gif" alt="añadir columna" />&nbsp;<img src="editatabla/menos.gif" alt="borrar columna" /></td>
  16. <td>&nbsp;</td>
  17. </tr>
  18. <tr class="cabeza">
  19. <td class="orden">&nbsp;</td><td>Ord.</td><td>Cantidad 1</td><td>Cantidad 2</td><td>Total</td>
  20. </tr>
  21. <tr>
  22. <td class="orden">&nbsp;<img src="editatabla/anadir.gif" alt="añadir fila" />&nbsp;<img src="editatabla/menos.gif" alt="borrar fila" /></td><td class="orden">1</td><td>0</td><td>0</td><td>0</td>
  23. </tr>
  24. <tr>
  25. <td class="orden">&nbsp;<img src="editatabla/anadir.gif" alt="añadir fila" />&nbsp;<img src="editatabla/menos.gif" alt="borrar fila" /></td><td class="orden">2</td><td>0</td><td>0</td><td>0</td>
  26. </tr>
  27. <tr>
  28. <td class="orden">&nbsp;</td><td class="orden">ST</td><td>0</td><td>0</td><td>0</td>
  29. </tr>
  30.  
  31.  
  32. </body>
  33. </html>

y el javascript

Código Javascript:
Ver original
  1. /* *******************************************************
  2. ** Código JavaScript para editar los datos de una tabla **
  3. ** JavierB Enero 2007                                   **
  4. *********************************************************/
  5.  
  6. var miTabla = 'tabla'; // poner aquí el id de la tabla que queremos editar
  7.  
  8. // preparar la tabla para edición
  9. function iniciarTabla() {
  10.     tab = document.getElementById(miTabla);
  11.   filas = tab.getElementsByTagName('tr');
  12.   for (i=1; fil = filas[i]; i++) {
  13.     celdas = fil.getElementsByTagName('td');
  14.     for (j=1; cel = celdas[j]; j++) {
  15.       if ((i>0 && j==celdas.length-1) || (i==filas.length-1 && j!=0)) continue; // La última columna  y la última fila no se pueden editar
  16.       cel.onclick = function() {crearInput(this)}
  17.     } // end for j
  18.   } //end for i
  19.  
  20.   // añadir funcion onclick a las imágenes para borrar y añadir y ocultar las imágenes de borrar
  21.   for (i=0; im = document.images[i]; i++)
  22.     if (im.alt=='añadir fila')
  23.       im.onclick = function() {anadir(this,0)}
  24.     else if (im.alt=='añadir columna')  
  25.       im.onclick = function() {anadir(this,1)}
  26.     else if (im.alt=='borrar fila') {
  27.       im.onclick = function() {borrar(this,0)}
  28.       im.style.visibility = 'hidden';
  29.     }
  30.     else if (im.alt=='borrar columna') {
  31.       im.onclick = function() {borrar(this,1)}
  32.       im.style.visibility = 'hidden';
  33.     }  
  34. } // end function
  35.  
  36. // crear input para editar datos
  37. function crearInput(celda) {
  38.   celda.onclick = function() {return false}
  39.   txt = celda.innerHTML;
  40.   celda.innerHTML = '';
  41.   obj = celda.appendChild(document.createElement('input'));
  42.   obj.value = txt;
  43.   obj.focus();
  44.   obj.onblur = function() {
  45.     txt = this.value;
  46.     celda.removeChild(obj);
  47.     celda.innerHTML = txt;
  48.     celda.onclick = function() {crearInput(celda)}
  49.     sumar();    
  50.   }
  51. }
  52.  
  53. // sumar los datos de la tabla
  54. function sumar() {
  55.   tab = document.getElementById(miTabla);
  56.   filas = tab.getElementsByTagName('tr');
  57.   sum = new Array(filas.length);
  58.   for (i=0; i<sum.length; i++)
  59.     sum[i]=0;
  60.   for (i=2, tot=filas.length-1; i<tot; i++) {
  61.     total = 0;
  62.     celdas = filas[i].getElementsByTagName('td');
  63.     for (j=2, to=celdas.length-1; j<to; j++) {
  64.       num = parseFloat(celdas[j].innerHTML);
  65.       if (isNaN(num)) num = 0;
  66.       total += num;
  67.       sum[j-2] += num;
  68.     } // end for j
  69.     celdas[celdas.length-1].innerHTML = total;
  70.     sum[j-2] += total;
  71.   } // end for i
  72.  
  73.   subt = filas[filas.length-1].getElementsByTagName('td');
  74.   for (i=2, tot=subt.length; i<tot; i++)
  75.     subt[i].innerHTML = sum[i-2];
  76. } // end function
  77.  
  78. // añadir filas o columnas
  79. function anadir(obj,num) {
  80.   if (num==0) { // añadir filas
  81.   fila = obj.parentNode.parentNode;
  82.   nuevaFila = fila.cloneNode(true);
  83.   im = nuevaFila.getElementsByTagName('img');
  84.   im[0].onclick = function() {anadir(this,0)}
  85.   im[1].onclick = function() {borrar(this,0)}
  86.   for (i=2, tot=nuevaFila.getElementsByTagName('td').length-1; i<tot; i++) {
  87.     nuevaFila.getElementsByTagName('td')[i].onclick = function() {crearInput(this)} ;
  88.     nuevaFila.getElementsByTagName('td')[i].innerHTML = 0;
  89.   }
  90.   fila.parentNode.insertBefore(nuevaFila,fila);
  91.   } // end añadir filas
  92.  
  93.   else { // añadir columnas
  94.     tab = document.getElementById(miTabla);
  95.     cabecera = tab.getElementsByTagName('tr')[0];
  96.     // averiguar nº de columna
  97.     for (num=0; cel = cabecera.getElementsByTagName('td')[num]; num++)
  98.       if (cel==obj.parentNode) break;
  99.     for (i=0; fila = tab.getElementsByTagName('tr')[i]; i++) {
  100.       ele = fila.getElementsByTagName('td')[num];
  101.       nuevaColumna = ele.cloneNode(true);
  102.       if (i==0) {
  103.           im = nuevaColumna.getElementsByTagName('img');
  104.           im[0].onclick = function() {anadir(this,1)}
  105.           im[1].onclick = function() {borrar(this,1)}
  106.        }
  107.        else {
  108.           nuevaColumna.innerHTML = (i==1) ? '' : 0;
  109.           nuevaColumna.onclick = function() {crearInput(this)} ;
  110.       }
  111.       fila.insertBefore(nuevaColumna,ele);
  112.     } //end for i
  113.   } // end añadir columnas
  114.   mostrarImagenes();
  115. }
  116.  
  117. // borrar filas o columnas
  118. function borrar(obj,num) {
  119.   if (num==0) { // borrar filas
  120.     tab = obj.parentNode.parentNode.parentNode;
  121.     tab.removeChild(obj.parentNode.parentNode);
  122.   } // end borrar filas
  123.   else { // borrar columnas
  124.     tab = document.getElementById(miTabla);
  125.     cabecera = tab.getElementsByTagName('tr')[0];
  126.     // averiguar nº de columna
  127.     for (num=0; cel = cabecera.getElementsByTagName('td')[num]; num++)
  128.       if (cel==obj.parentNode) break;
  129.     for (i=0; fila = tab.getElementsByTagName('tr')[i]; i++)
  130.       fila.removeChild(fila.getElementsByTagName('td')[num]);
  131.   }
  132.   sumar();
  133.   mostrarImagenes();
  134. }
  135.  
  136. // mostrar/ocultar imagenes para borrar
  137. function mostrarImagenes() {
  138.   tab = document.getElementById(miTabla);
  139.   filas = tab.getElementsByTagName('tr');
  140.   columnas = filas[0].getElementsByTagName('td');
  141.   numFilas = filas.length;
  142.   numColumnas = columnas.length;
  143.   for (i=0; im=tab.getElementsByTagName('img')[i]; i++)
  144.     if (im.alt == 'borrar fila')
  145.       im.style.visibility = (numFilas>5) ? 'visible' : 'hidden';
  146.     else if (im.alt == 'borrar columna')
  147.       im.style.visibility = (numColumnas>5) ? 'visible' : 'hidden';
  148. }

agradesco de ante mano a javierb y espero su colaboracion muchas muchas muchas gracias de ante mano