Foros del Web » Programando para Internet » PHP »

necesito hacer una tabla editable en html y que el usuario pueda ingresar numeros

Estas en el tema de necesito hacer una tabla editable en html y que el usuario pueda ingresar numeros en el foro de PHP en Foros del Web. Hola que tal? Soy nueva en el foro y necesito mucha ayuda. Esperaba que alguien me pudiera ayudar sobre como hacer una tabla que el ...
  #1 (permalink)  
Antiguo 20/02/2012, 09:55
Avatar de mili_07  
Fecha de Ingreso: febrero-2012
Mensajes: 58
Antigüedad: 12 años, 10 meses
Puntos: 1
Pregunta necesito hacer una tabla editable en html y que el usuario pueda ingresar numeros

Hola que tal? Soy nueva en el foro y necesito mucha ayuda. Esperaba que alguien me pudiera ayudar sobre como hacer una tabla que el usuario pueda ingresar datos y hacer una función que saque promedio (PHP) y a su vez lo guarde en la base de datos(MYSQL). Desde ya muchas gracias, y eterna gratitud al que me pueda ayudar... Saludos...
  #2 (permalink)  
Antiguo 20/02/2012, 10:33
Avatar de zarkiel  
Fecha de Ingreso: febrero-2012
Mensajes: 51
Antigüedad: 12 años, 10 meses
Puntos: 15
Respuesta: necesito hacer una tabla editable en html y que el usuario pueda ingresar

Agradecería que fueras un poco más expecífica en lo que deseas, asi será más fácil ayudarte
__________________
« Los deseos pueden hacerse realidad, pero no basta con esperar un milagro, el milagro lo hacemos nosotros... Aquí y ahora »
  #3 (permalink)  
Antiguo 20/02/2012, 11:10
Avatar de mili_07  
Fecha de Ingreso: febrero-2012
Mensajes: 58
Antigüedad: 12 años, 10 meses
Puntos: 1
Pregunta Respuesta: necesito hacer una tabla editable en html y que el usuario pueda ingresar

Mira esto es lo que tengo ahora, pero esto es con javascript y html, hay alguna forma de acondicionar esto para que saque el promedio y lo pueda guardar en la base de datos?
El siguiente es el código:

<html>
<head>
<title>sample dynamic select list</title>
<script type="text/javascript">
function getColumnCount()
{
return document.getElementById('myTable').getElementsByTa gName('tr')[0].getElementsByTagName('td').length;
}

function getRowCount()
{
return document.getElementById('myTable').rows.length;
}

function doAdd(ths)
{
//alert(ths.parentNode.cellIndex);
//alert(getColumnCount());
var lastCol = getColumnCount()-1;
var lastRow = getRowCount()-1;
//for Column Sum
var table = document.getElementById("myTable");
var row = table.rows[ths.parentNode.parentNode.rowIndex];
var colSum=0;
for(var i=0;i<lastCol;i++)
colSum=eval(colSum) + eval(row.cells[i].childNodes[0].value);
row.cells[lastCol].innerHTML = colSum;

//for Row Sum
var cIndex = ths.parentNode.cellIndex;
//alert(cIndex);
var rowSum = 0;
for(var i=0;i<lastRow;i++)
rowSum = eval(rowSum) + parseInt(table.rows[i].cells[cIndex].childNodes[0].value);
table.rows[lastRow].cells[cIndex].innerHTML = rowSum;


//for the final Value in the last row last column
var finSum = 0;
for(var i=0;i<lastRow;i++)
finSum = eval(finSum) + parseInt(table.rows[i].cells[lastCol].innerHTML);
for(var i=0;i<lastCol;i++)
finSum=eval(finSum)/*+ eval(table.rows[lastRow].cells[i].innerHTML)*/;
table.rows[lastRow].cells[lastCol].innerHTML = finSum;
}
</script>
</head>
<body>

<table cellspacing="0" cellpadding="0" width="100%" border="1" id="myTable">
<tr>
<td><input type="text" value="0" onchange="doAdd(this)"></td>
<td><input type="text" value="0" onchange="doAdd(this)"></td>
<td><input type="text" value="0" onchange="doAdd(this)"></td>
<td><input type="text" value="0" onchange="doAdd(this)"></td>
<td><input type="text" value="0" onchange="doAdd(this)"></td>
<td>0</td>
</tr>
<tr>
<td><input type="text" value="0" onchange="doAdd(this)"></td>
<td><input type="text" value="0" onchange="doAdd(this)"></td>
<td><input type="text" value="0" onchange="doAdd(this)"></td>
<td><input type="text" value="0" onchange="doAdd(this)"></td>
<td><input type="text" value="0" onchange="doAdd(this)"></td>
<td>0</td>
</tr>
<tr>
<td><input type="text" value="0" onchange="doAdd(this)"></td>
<td><input type="text" value="0" onchange="doAdd(this)"></td>
<td><input type="text" value="0" onchange="doAdd(this)"></td>
<td><input type="text" value="0" onchange="doAdd(this)"></td>
<td><input type="text" value="0" onchange="doAdd(this)"></td>
<td>0</td>
</tr>
<tr>
<td><input type="text" value="0" onchange="doAdd(this)"></td>
<td><input type="text" value="0" onchange="doAdd(this)"></td>
<td><input type="text" value="0" onchange="doAdd(this)"></td>
<td><input type="text" value="0" onchange="doAdd(this)"></td>
<td><input type="text" value="0" onchange="doAdd(this)"></td>
<td>0</td>
</tr>
<tr>
<td>0</td>
<td>0</td>
<td>0</td>
<td>0</td>
<td>0</td>
<td>0</td>
</tr>
</table>
</body>
</html>

Gracias...
  #4 (permalink)  
Antiguo 20/02/2012, 11:44
Avatar de zarkiel  
Fecha de Ingreso: febrero-2012
Mensajes: 51
Antigüedad: 12 años, 10 meses
Puntos: 15
Respuesta: necesito hacer una tabla editable en html y que el usuario pueda ingresar

Deseas que el promedio sea, una para la suma vertical y otra para la suma horizontal??
__________________
« Los deseos pueden hacerse realidad, pero no basta con esperar un milagro, el milagro lo hacemos nosotros... Aquí y ahora »
  #5 (permalink)  
Antiguo 20/02/2012, 11:46
Avatar de Patriarka  
Fecha de Ingreso: enero-2011
Ubicación: Moreno, Buenos Aires, Argentina
Mensajes: 2.851
Antigüedad: 13 años, 10 meses
Puntos: 288
Respuesta: necesito hacer una tabla editable en html y que el usuario pueda ingresar

que buen desafio he!

vamos las chicas sigan sumandose a este foro lleno de lobos y buistres rapaces!
  #6 (permalink)  
Antiguo 20/02/2012, 11:51
Avatar de zarkiel  
Fecha de Ingreso: febrero-2012
Mensajes: 51
Antigüedad: 12 años, 10 meses
Puntos: 15
Respuesta: necesito hacer una tabla editable en html y que el usuario pueda ingresar

ya tengo la respuesta sólo me falta pulirla, un momento ya te la envio
__________________
« Los deseos pueden hacerse realidad, pero no basta con esperar un milagro, el milagro lo hacemos nosotros... Aquí y ahora »
  #7 (permalink)  
Antiguo 20/02/2012, 11:52
Avatar de mili_07  
Fecha de Ingreso: febrero-2012
Mensajes: 58
Antigüedad: 12 años, 10 meses
Puntos: 1
Pregunta Respuesta: necesito hacer una tabla editable en html y que el usuario pueda ingresar

Cita:
Iniciado por zarkiel Ver Mensaje
Deseas que el promedio sea, una para la suma vertical y otra para la suma horizontal??
Si exacto...
  #8 (permalink)  
Antiguo 20/02/2012, 11:56
Avatar de Patriarka  
Fecha de Ingreso: enero-2011
Ubicación: Moreno, Buenos Aires, Argentina
Mensajes: 2.851
Antigüedad: 13 años, 10 meses
Puntos: 288
Respuesta: necesito hacer una tabla editable en html y que el usuario pueda ingresar

Cita:
Iniciado por zarkiel Ver Mensaje
ya tengo la respuesta sólo me falta pulirla, un momento ya te la envio
a mi me gustari que me hagas todo un sistema para hacerme rico en poco tiempo, voy a poner en mi perfil que soy mujer a ver si tengo suerte...
  #9 (permalink)  
Antiguo 20/02/2012, 14:47
Avatar de zarkiel  
Fecha de Ingreso: febrero-2012
Mensajes: 51
Antigüedad: 12 años, 10 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 »
  #10 (permalink)  
Antiguo 21/02/2012, 09:14
Avatar de mili_07  
Fecha de Ingreso: febrero-2012
Mensajes: 58
Antigüedad: 12 años, 10 meses
Puntos: 1
De acuerdo Respuesta: necesito hacer una tabla editable en html y que el usuario pueda ingresar

Cita:
Iniciado por zarkiel Ver Mensaje
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. ?>
Muchisimas gracias! Saludos.
  #11 (permalink)  
Antiguo 21/02/2012, 11:00
 
Fecha de Ingreso: agosto-2011
Mensajes: 27
Antigüedad: 13 años, 4 meses
Puntos: 0
Respuesta: necesito hacer una tabla editable en html y que el usuario pueda ingresar

Por que mejor no utilizaste una libreria como Jquery?

Te ahorraria mucho trabajo y limpieza en tu codigo

Saludos.
  #12 (permalink)  
Antiguo 23/02/2012, 22:17
Avatar de zarkiel  
Fecha de Ingreso: febrero-2012
Mensajes: 51
Antigüedad: 12 años, 10 meses
Puntos: 15
Respuesta: necesito hacer una tabla editable en html y que el usuario pueda ingresar

Cita:
Iniciado por emilioledesma_3 Ver Mensaje
Por que mejor no utilizaste una libreria como Jquery?

Te ahorraria mucho trabajo y limpieza en tu codigo

Saludos.
Tienes razón con jquery hubiera sido mejor, pero no creo que hubiera ahorrado "mucho" trabajo ya que sólo hubiera reemplazado a document.getElementById, además me basé en el código que se mostró al principio
__________________
« Los deseos pueden hacerse realidad, pero no basta con esperar un milagro, el milagro lo hacemos nosotros... Aquí y ahora »

Etiquetas: ayuda-php, mysql
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 00:37.