Ver Mensaje Individual
  #15 (permalink)  
Antiguo 22/12/2011, 19:21
Avatar de Triby
Triby
Mod on free time
 
Fecha de Ingreso: agosto-2008
Ubicación: $MX->Gto['León'];
Mensajes: 10.106
Antigüedad: 15 años, 8 meses
Puntos: 2237
Respuesta: php sumar input text con variable sin hacer submit

Bueno, tienes varios errores:

1- En cada paso del while estás creando el javascript con la función para calcular, ésta debe aparecer sólo una vez.
2- En cada fila de la tabla repites nombres e id's de campos

Aquí, la cuestión sería cómo pretendes tomar después todos los campos del formulario, como array?

Entonces:
Código PHP:
Ver original
  1. <script type="text/javascript">
  2. // dias es el total de días trabajados
  3. // sueldo es el sueldo básico del empleado
  4. // indice corresponde al input text que se debe actualizar
  5. function calcula(dias, sueldo, indice) {
  6.     // Va sin formato, eso tendrás que preguntarlo en el foro de Javascript
  7.     document.getElementById('sueldo_quinc' + indice).value = dias * sueldo;
  8. }
  9. </script>
  10.  
  11. <?php
  12. // Necesitamos un índice numérico para generar los ID de campos
  13. $indice = 1;
  14. while($result = mysql_fetch_array($rs)) {
  15.     // Realmente no necesitas hacer todas las asignaciones que tienes
  16.     // Sólo estás agregando más código, siempre puedes incluir...
  17.     // ... elementos de array en cadenas usando {$result['indice']}
  18.     $ivss = number_format(($result['sueldo_basico']*4/100),2,'.','');
  19.     $paro_for = number_format(($result['sueldo_basico']*0.5/100),2,'.','');
  20.     $lph = number_format(($result['sueldo_basico']*1/100),2,'.','');
  21.     $sueldo_diario = number_format(($result['sueldo_basico']/30),2,'.','');
  22.     // Para facilitar un poco las cosas, habrá que agregar un campo oculto...
  23.     // ...con la id de empleado
  24. ?>
  25.     <tr>
  26.         <td><?php echo $result['id_empleado']; ?><input type="hiden" name="id_empleado[]" value="<?php echo $result['id_empleado']; ?>" /></td>
  27.         <td><?php echo $result['ci']; ?></td>
  28.         <td><?php echo "{$result['papellido']} {$result['sapellido']}"; ?></td>
  29.         <td><?php echo "{$result['pnombre']} {$result['snombre']}"; ?></td>
  30.         <td><input name="dias[]" type="text" id="dias<?php echo $indice; ?>" size="2" value="" onblur="calcula(this.value, '<?php echo $result['sueldo_basico']; ?>', <?php echo $indice; ?>);" /></td>
  31.         <td><?php echo $result['sueldo_basico']; ?></td>
  32.         <td><input name="sueldo_quinc[]" type="text" id="sueldo_quinc<?php echo $indice; ?>" size="5" value="" readonly="readonly" /></td>
  33.         <td><?php echo $ivss; ?></td>
  34.         <td><?php echo $paro_for; ?></td>
  35.         <td><?php echo $lph; ?></td>
  36.         <td><input name="otros_ing[]" type="text" size="5" /></td>
  37.         <td><input name="otros_desc[]" type="text"size="5" /></td>
  38.        <td></td>
  39.        <td></td>
  40.     </tr>
  41. <?php
  42.     $indice ++;
  43. } // fin de while
  44. ?>

Al procesar el formulario haces un var_dump($_POST); para que veas cómo vienen los datos y puedas tomarlos sin problemas.
__________________
- León, Guanajuato
- GV-Foto