Bueno, primero, tendrás que agregar un "indice" a todos los id's de los campos (ojo, esto no afecta al PHP que lo va a procesar, php lee el name no el id), el "indice" será compartido por todos los campos de una sola fila, para la siguiente se sumara 1 al indice para obtener el siguiente numero, el javascript es muy sencillo, prueba y me cuentas
Código PHP:
Ver original<html>
<head>
<title>Hola mundo</title>
<script type="text/javascript">
function ingresos(fila) {
var dias = document.getElementById('dias' + fila).value;
var sueldo = document.getElementById('sueldo' + fila).value;
dias = parseInt(dias);
sueldo = parseFloat(sueldo).toFixed(2);
var total = dias + sueldo;
return total;
}
function descuentos(fila) {
var desc = document.getElementById('descuentos' + fila).value;
var ivvs = document.getElementById('ivvs' + fila).value;
var paro = document.getElementById('paro' + fila).value;
var lph = document.getElementById('lph' + fila).value;
desc = parseFloat(desc);
desc = parseFloat(ivvs);
desc = parseFloat(paro);
desc = parseFloat(lph);
var total = desc + ivvs + paro + lph;
return total;
}
function sumar(fila) {
var ing = ingresos(fila);
var des = descuentos(fila);
ing = parseFloat(ing).toFixed(2);
des = parseFloat(des).toFixed(2);
var total = ing - des;
total = parseFloat(total).toFixed(2);
document.getElementById('total' + fila).value = total;
}
function todo() {
var campos = document.getElementById('campos').value;
for(var i=0; i<campos; i++) {
sumar(i);
}
}
</script>
</head>
<body>
<form id="miform" method="post">
<table>
<tr>
<td>dias</td>
<td>sueldo dia</td>
<td>ivvs</td>
<td>paro</td>
<td>lph</td>
<td>descuento</td>
<td>ingresos</td>
</tr>
<?php
for($i=0; $i<10; $i++) {
echo '<tr>'.PHP_EOL;
echo '<td><input type="text" id="dias'.$i.'" name="dias[]" value="'.rand(1,99).'" /></td>'; echo '<td><input type="text" id="sueldo'.$i.'" name="sueldo[]" value="'.rand(1,99).'.'.rand(1,99).'" /></td>'; echo '<td><input type="text" id="ivvs'.$i.'" name="ivvs" value="'.rand(1,99).'.'.rand(1,99).'" /></td>'; echo '<td><input type="text" id="paro'.$i.'" name="paro" value="'.rand(1,99).'.'.rand(1,99).'" /></td>'; echo '<td><input type="text" id="lph'.$i.'" name="lph" value="'.rand(1,99).'.'.rand(1,99).'" /></td>'; echo '<td><input type="text" id="descuentos'.$i.'" name="descuentos" value="'.rand(1,99).'.'.rand(1,99).'" /></td>'; echo '<td><input type="text" id="ingresos'.$i.'" name="ingresos" value="'.rand(1,99).'.'.rand(1,99).'" /></td>'; echo '<td><input type="text" id="total'.$i.'" name="total[]" /></td>';
echo '<td><input type="button" value="calcular" onclick="sumar(\''.$i.'\')" /></td>';
echo '</tr>';
}
?>
</table>
<input type="hidden" id="campos" value="<?php echo $i; ?>" />
<p><input type="button" value="calcular todo" onclick="todo()" /></p>;
</form>
</body>
</html>