Ver Mensaje Individual
  #2 (permalink)  
Antiguo 22/03/2011, 12:12
Avatar de laratik
laratik
 
Fecha de Ingreso: mayo-2010
Ubicación: Cali
Mensajes: 317
Antigüedad: 13 años, 11 meses
Puntos: 63
Respuesta: Problema con funcion 2

Hola Deathmetalrules, rápidamente se me ocurre esto:

Código HTML:
Ver original
  1. <html>
  2.       <head>
  3.       <title>Calculo de promedios</title>  
  4.         <script>  
  5.       function pagoscl(pago)
  6.        {
  7.  
  8.       p = new Array();
  9.       p[0] = document.getElementById(pago+"_1").value
  10.       p[1] = document.getElementById(pago+"_2").value
  11.       p[2] = document.getElementById(pago+"_3").value
  12.       p[3]=document.getElementById(pago+"_prom")
  13.       for (i = 0, campos = p.length; i < campos; i++)
  14.      {
  15.      p[i] = (!isNaN(p[i]) && p[i] != '')? Number(p[i]): 0;
  16.        
  17.        if ( p[0] != "" )
  18.        {
  19.        p[3].value = p[0]    //aca se escribe el resultado
  20.        }
  21.        if ( p[0] ||  p[1] != "" )
  22.        {
  23.        var suma1 =  p[0] + p[1];
  24.  
  25.        var pg = Number(suma1 / 2);
  26.  
  27.        pg = pg.toFixed(1);
  28.  
  29.        pg = pg.substring(0, pg.length - 2);
  30.  
  31.        p[3].value = pg //aca se escribe el resultado
  32.  
  33.        }
  34.  
  35.        if ( p[0] ||  p[1] ||  p[2] != "" )
  36.        {
  37.  
  38.        var suma2 =  p[0] +  p[1] +  p[2];
  39.  
  40.        var pg = Number(suma2 / 3);
  41.  
  42.        pg = pg.toFixed(1);
  43.  
  44.        pg = pg.substring(0, pg.length - 2);
  45.  
  46.        p[3].value = pg //aca se escribe el resultado
  47.        }
  48.                        
  49.      }
  50. }
  51.      </script>
  52.  
  53.       </head>
  54.  
  55.       <body>
  56.  
  57.       <form>
  58.        
  59. <table  cellpadding="0" cellspacing=0 width="50%" align=center border=0>
  60. <thead><tr><td colspan=12 align=center>Proveedores</td></tr></thead>
  61. <thead><tr><td></td><td>Codigo</td><td>Empresa</td><td>I abono</td><td>II abono</td><td>III abono</td><td>Total</td></tr></thead>
  62. <tr>
  63. <td><input type="text" value="1" name="id[]" style="color:#000000; width:36px; text-align:center;border-color:#A0A0A4"></td>
  64. <td><input type="text" value="GCrp-3" name="cod[]" style="color:#000000; width:56px; text-align:center;border-color:#A0A0A4"></td>
  65. <td>Gonzalez Corporation</td>
  66. <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>  
  67. <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>  
  68. <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>  
  69. <td><input type="text" value="" name="gc" id="gc_prom" style="color:#000000; width:36px; text-align:center;border-color:#A0A0A4"></td></tr>
  70.  
  71.  
  72.  
  73.  
  74. <tr><td><input type="text" value="2" name="id[]" style="color:#000000; width:36px; text-align:center;border-color:#A0A0A4"></td>
  75. <td><input type="text" value="DLz-1" name="cod[]" style="color:#000000; width:56px; text-align:center;border-color:#A0A0A4"></td>
  76. <td>Distribuidora Lopez</td>
  77. <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>  
  78. <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>  
  79. <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>  
  80. <td><input type="text" value="" name="dl" id="dl_prom" style="color:#000000; width:36px; text-align:center;border-color:#A0A0A4" ></td></tr></table>
  81.       </form>
  82.  
  83.       </body>
  84.  
  85.       </html>

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
  1. <html>
  2.       <head>
  3.       <title>Calculo de promedios</title>  
  4.         <script>  
  5.       function pagoscl(pago)
  6.        {
  7.        pago = pago.split("_")[0];
  8.  
  9.       p = new Array();
  10.       p[0] = document.getElementById(pago+"_1").value
  11.       p[1] = document.getElementById(pago+"_2").value
  12.       p[2] = document.getElementById(pago+"_3").value
  13.       p[3]=document.getElementById(pago+"_prom")
  14.       for (i = 0, campos = p.length; i < campos; i++)
  15.       {
  16.       p[i] = (!isNaN(p[i]) && p[i] != '')? Number(p[i]): 0;
  17.        
  18.         if ( p[0] != "" )
  19.         {
  20.         p[3].value = p[0]    //aca se escribe el resultado
  21.         }
  22.         if ( p[0] ||  p[1] != "" )
  23.         {
  24.         var suma1 =  p[0] + p[1];
  25.  
  26.         var pg = Number(suma1 / 2);
  27.  
  28.         pg = pg.toFixed(1);
  29.  
  30.         pg = pg.substring(0, pg.length - 2);
  31.  
  32.         p[3].value = pg //aca se escribe el resultado
  33.  
  34.         }
  35.  
  36.         if ( p[0] ||  p[1] ||  p[2] != "" )
  37.         {
  38.  
  39.         var suma2 =  p[0] +  p[1] +  p[2];
  40.  
  41.         var pg = Number(suma2 / 3);
  42.  
  43.         pg = pg.toFixed(1);
  44.  
  45.         pg = pg.substring(0, pg.length - 2);
  46.  
  47.         p[3].value = pg //aca se escribe el resultado
  48.         }
  49.                        
  50.       }
  51. }
  52.       </script>
  53.  
  54.       </head>
  55.  
  56.       <body>
  57.  
  58.       <form>
  59.        
  60. <table  cellpadding="0" cellspacing=0 width="50%" align=center border=0>
  61. <thead><tr><td colspan=12 align=center>Proveedores</td></tr></thead>
  62. <thead><tr><td></td><td>Codigo</td><td>Empresa</td><td>I abono</td><td>II abono</td><td>III abono</td><td>Total</td></tr></thead>
  63. <tr>
  64. <td><input type="text" value="1" name="id[]" style="color:#000000; width:36px; text-align:center;border-color:#A0A0A4"></td>
  65. <td><input type="text" value="GCrp-3" name="cod[]" style="color:#000000; width:56px; text-align:center;border-color:#A0A0A4"></td>
  66. <td>Gonzalez Corporation</td>
  67. <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>  
  68. <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>  
  69. <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>  
  70. <td><input type="text" value="" name="gc_prom" id="gc_prom" style="color:#000000; width:36px; text-align:center;border-color:#A0A0A4"></td></tr>
  71.  
  72.  
  73.  
  74.  
  75. <tr><td><input type="text" value="2" name="id[]" style="color:#000000; width:36px; text-align:center;border-color:#A0A0A4"></td>
  76. <td><input type="text" value="DLz-1" name="cod[]" style="color:#000000; width:56px; text-align:center;border-color:#A0A0A4"></td>
  77. <td>Distribuidora Lopez</td>
  78. <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>  
  79. <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>  
  80. <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>  
  81. <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>
  82.       </form>
  83.  
  84.       </body>
  85.  
  86.       </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">
__________________
Programar apasiona y lo que apasiona es un arte, por lo tanto programar es un arte.

Quiero karma para en mi próxima vida ser un billonario bien dotado con alas.

Última edición por laratik; 22/03/2011 a las 12:27 Razón: Mejorar opciones de script