Ver Mensaje Individual
  #9 (permalink)  
Antiguo 20/02/2012, 14:47
Avatar de zarkiel
zarkiel
 
Fecha de Ingreso: febrero-2012
Mensajes: 51
Antigüedad: 12 años, 2 meses
Puntos: 15
Respuesta: necesito hacer una tabla editable en html y que el usuario pueda ingresar

Quizá te pueda servir esto:

Formulario:

Código PHP:
Ver original
  1. <?php
  2. $total_filas = 5; // numero de filas
  3. $total_columnas = 4; // numero de columnas
  4. ?>
  5. <html>
  6. <head>
  7. <title></title>
  8. <script type="text/javascript">
  9. function doAdd(fila,columna,obj){
  10.     var promedio_fila = document.getElementById('promedio_fila_' + fila);
  11.     var promedio_columna = document.getElementById('promedio_columna_' + columna);
  12.     var total_filas = 0;
  13.     var total_columnas = 0;
  14.    
  15.     for(i=1;i<=<?=$total_filas?>;i++){
  16.         valor = parseInt(document.getElementById('campo_'+i+'_' + columna).value);
  17.         total_filas += valor;
  18.     }
  19.    
  20.     for(i=1;i<=<?=$total_columnas?>;i++){
  21.         valor = parseInt(document.getElementById('campo_'+fila+'_'+i).value);
  22.         total_columnas += valor;
  23.     }
  24.    
  25.     promedio_fila.value = Math.round(total_columnas/<?=$total_columnas?>);
  26.     promedio_columna.value = Math.round(total_filas/<?=$total_filas?>);
  27. }
  28. </script>
  29. </head>
  30. <body>
  31.  
  32. <form id="formulario" action="guardar.php" method="POST">
  33.     <table>
  34.         <?php
  35.         for($fila=1;$fila<=$total_filas;$fila++){
  36.         ?>
  37.         <tr>
  38.        
  39.         <?php
  40.         for($columna=1;$columna<=$total_columnas;$columna++){
  41.         ?>
  42.             <td><input type="text" onkeyup="doAdd(<?=$fila?>,<?=$columna?>,this)" onkeydown="doAdd(<?=$fila?>,<?=$columna?>,this)" name="campo[<?=$fila?>][<?=$columna?>]" id="campo_<?=$fila?>_<?=$columna?>" value="0" /></td>
  43.         <?php
  44.         }
  45.         ?>
  46.             <td><input type="text" name="promedio_fila[<?=$fila?>]" id="promedio_fila_<?=$fila?>" readonly /></td>
  47.         </tr>
  48.         <?php
  49.         }
  50.         ?>
  51.         <tr>
  52.         <?php
  53.         for($columna=1;$columna<=$total_columnas;$columna++){
  54.         ?>
  55.             <td><input type="text" name="promedio_columna[<?=$columna?>]" id="promedio_columna_<?=$columna?>" readonly /></td>
  56.         <?php
  57.         }
  58.         ?>
  59.         </tr>
  60.        
  61.         <tr>
  62.             <td colspan="<?=$total_columnas?>">
  63.                 <input type="submit" value="Guardar" />
  64.             </td>
  65.         </tr>
  66.     </table>
  67. </form>
  68. </body>
  69. </html>

Archivo guardar.php

Código PHP:
Ver original
  1. <?php
  2.  
  3. extract($_POST); //
  4.  
  5. // obtenemos los valores
  6.  
  7. foreach($campo As $fila=>$campo_columna){
  8.     foreach($campo_columna As $columna=>$valor_campo){
  9.         echo $valor_campo.' ';
  10.     }
  11.     echo '<br />';
  12. }
  13.  
  14. // obtenemos los promedios horizontales
  15.  
  16. foreach($promedio_fila As $fila=>$valor){
  17.     echo 'Promedio Fila '.$fila.' => '.$valor.'<br />';
  18. }
  19.  
  20. // obtenemos los promedios verticales
  21.  
  22. foreach($promedio_columna As $columna=>$valor){
  23.     echo 'Promedio Columna '.$columna.' => '.$valor.'<br />';
  24. }
  25. ?>
__________________
« Los deseos pueden hacerse realidad, pero no basta con esperar un milagro, el milagro lo hacemos nosotros... Aquí y ahora »