Hola Deathmetalrules, rápidamente se me ocurre esto:
Código HTML:
Ver original function pagoscl(pago)
{
p = new Array();
p[0] = document.getElementById(pago+"_1").value
p[1] = document.getElementById(pago+"_2").value
p[2] = document.getElementById(pago+"_3").value
p[3]=document.getElementById(pago+"_prom")
for (i = 0, campos = p.length; i < campos; i++)
{
p[i] = (!isNaN(p[i]) && p[i] != '')? Number(p[i]): 0;
if ( p[0] != "" )
{
p[3].value = p[0] //aca se escribe el resultado
}
if ( p[0] || p[1] != "" )
{
var suma1 = p[0] + p[1];
var pg = Number(suma1 / 2);
pg = pg.toFixed(1);
pg = pg.substring(0, pg.length - 2);
p[3].value = pg //aca se escribe el resultado
}
if ( p[0] || p[1] || p[2] != "" )
{
var suma2 = p[0] + p[1] + p[2];
var pg = Number(suma2 / 3);
pg = pg.toFixed(1);
pg = pg.substring(0, pg.length - 2);
p[3].value = pg //aca se escribe el resultado
}
}
}
<table cellpadding="0" cellspacing=0 width="50%" align=center border=0> <td><input type="text" value="1" name="id[]" style="color:#000000; width:36px; text-align:center;border-color:#A0A0A4"></td> <td><input type="text" value="GCrp-3" name="cod[]" style="color:#000000; width:56px; text-align:center;border-color:#A0A0A4"></td> <td>Gonzalez Corporation
</td> <td><input name="gc" id="gc_1" onMouseDown="pagoscl(this.name)" onKeyUp="pagoscl(this.name)" style="color:#000000; width:36px; text-align:center;border-color:#A0A0A4"></td> <td><input name="gc" id="gc_2" onMouseDown="pagoscl(this.name)" onKeyUp="pagoscl(this.name)" style="color:#000000; width:36px; text-align:center;border-color:#A0A0A4"></td> <td><input name="gc" id="gc_3" onMouseDown="pagoscl(this.name)" onKeyUp="pagoscl(this.name)" style="color:#000000; width:36px; text-align:center;border-color:#A0A0A4"></td> <td><input type="text" value="" name="gc" id="gc_prom" style="color:#000000; width:36px; text-align:center;border-color:#A0A0A4"></td></tr>
<tr><td><input type="text" value="2" name="id[]" style="color:#000000; width:36px; text-align:center;border-color:#A0A0A4"></td> <td><input type="text" value="DLz-1" name="cod[]" style="color:#000000; width:56px; text-align:center;border-color:#A0A0A4"></td> <td>Distribuidora Lopez
</td> <td><input name="dl" id="dl_1" onMouseDown="pagoscl(this.name)" onKeyUp="pagoscl(this.name)" style="color:#000000; width:36px; text-align:center;border-color:#A0A0A4"></td> <td><input name="dl" id="dl_2" onMouseDown="pagoscl(this.name)" onKeyUp="pagoscl(this.name)" style="color:#000000; width:36px; text-align:center;border-color:#A0A0A4"></td> <td><input name="dl" id="dl_3" onMouseDown="pagoscl(this.name)" onKeyUp="pagoscl(this.name)" style="color:#000000; width:36px; text-align:center;border-color:#A0A0A4"></td> <td><input type="text" value="" name="dl" id="dl_prom" style="color:#000000; width:36px; text-align:center;border-color:#A0A0A4" ></td></tr></table>
Debes tratar en lo menos posible repetir ids... osea JAMAS repitas ids.
Si vas a sacar los datos desde el servidor puedes utilizar:
Código PHP:
<input name="<?php echo $nomEmpresa ?>" id="<?php echo $nomEmpresa."_1" ?>" onMouseDown="pagoscl(this.name)" onKeyUp="pagoscl(this.name)" style="color:#000000; width:36px; text-align:center;border-color:#A0A0A4">
y si vas a enviar los datos también debes mejorar el name de la etiqueta y el javascript quedaria asi:
Código Javascript
:
Ver original<html>
<head>
<title>Calculo de promedios</title>
<script>
function pagoscl(pago)
{
pago = pago.split("_")[0];
p = new Array();
p[0] = document.getElementById(pago+"_1").value
p[1] = document.getElementById(pago+"_2").value
p[2] = document.getElementById(pago+"_3").value
p[3]=document.getElementById(pago+"_prom")
for (i = 0, campos = p.length; i < campos; i++)
{
p[i] = (!isNaN(p[i]) && p[i] != '')? Number(p[i]): 0;
if ( p[0] != "" )
{
p[3].value = p[0] //aca se escribe el resultado
}
if ( p[0] || p[1] != "" )
{
var suma1 = p[0] + p[1];
var pg = Number(suma1 / 2);
pg = pg.toFixed(1);
pg = pg.substring(0, pg.length - 2);
p[3].value = pg //aca se escribe el resultado
}
if ( p[0] || p[1] || p[2] != "" )
{
var suma2 = p[0] + p[1] + p[2];
var pg = Number(suma2 / 3);
pg = pg.toFixed(1);
pg = pg.substring(0, pg.length - 2);
p[3].value = pg //aca se escribe el resultado
}
}
}
</script>
</head>
<body>
<form>
<table cellpadding="0" cellspacing=0 width="50%" align=center border=0>
<thead><tr><td colspan=12 align=center>Proveedores</td></tr></thead>
<thead><tr><td>Nª</td><td>Codigo</td><td>Empresa</td><td>I abono</td><td>II abono</td><td>III abono</td><td>Total</td></tr></thead>
<tr>
<td><input type="text" value="1" name="id[]" style="color:#000000; width:36px; text-align:center;border-color:#A0A0A4"></td>
<td><input type="text" value="GCrp-3" name="cod[]" style="color:#000000; width:56px; text-align:center;border-color:#A0A0A4"></td>
<td>Gonzalez Corporation</td>
<td><input name="gc_1" id="gc_1" onMouseDown="pagoscl(this.name)" onKeyUp="pagoscl(this.name)" style="color:#000000; width:36px; text-align:center;border-color:#A0A0A4"></td>
<td><input name="gc_2" id="gc_2" onMouseDown="pagoscl(this.name)" onKeyUp="pagoscl(this.name)" style="color:#000000; width:36px; text-align:center;border-color:#A0A0A4"></td>
<td><input name="gc_3" id="gc_3" onMouseDown="pagoscl(this.name)" onKeyUp="pagoscl(this.name)" style="color:#000000; width:36px; text-align:center;border-color:#A0A0A4"></td>
<td><input type="text" value="" name="gc_prom" id="gc_prom" style="color:#000000; width:36px; text-align:center;border-color:#A0A0A4"></td></tr>
<tr><td><input type="text" value="2" name="id[]" style="color:#000000; width:36px; text-align:center;border-color:#A0A0A4"></td>
<td><input type="text" value="DLz-1" name="cod[]" style="color:#000000; width:56px; text-align:center;border-color:#A0A0A4"></td>
<td>Distribuidora Lopez</td>
<td><input name="dl_1" id="dl_1" onMouseDown="pagoscl(this.name)" onKeyUp="pagoscl(this.name)" style="color:#000000; width:36px; text-align:center;border-color:#A0A0A4"></td>
<td><input name="dl_2" id="dl_2" onMouseDown="pagoscl(this.name)" onKeyUp="pagoscl(this.name)" style="color:#000000; width:36px; text-align:center;border-color:#A0A0A4"></td>
<td><input name="dl_3" id="dl_3" onMouseDown="pagoscl(this.name)" onKeyUp="pagoscl(this.name)" style="color:#000000; width:36px; text-align:center;border-color:#A0A0A4"></td>
<td><input type="text" value="" name="dl_prom" id="dl_prom" style="color:#000000; width:36px; text-align:center;border-color:#A0A0A4" ></td></tr></table>
</form>
</body>
</html>
Sacando de servidor:
Código PHP:
<input name="<?php echo $nomEmpresa."_1" ?>" id="<?php echo $nomEmpresa."_1" ?>" onMouseDown="pagoscl(this.name)" onKeyUp="pagoscl(this.name)" style="color:#000000; width:36px; text-align:center;border-color:#A0A0A4">