JQuery - Problemas con resta en campos generados por un for

   
Vista:

Problemas con resta en campos generados por un for

Publicado por Israel (11 intervenciones) el 05/07/2014 08:03:04
Hola buenos dias nuevamente consultadolos haber si me podrian ayudar, el problema es el siguiente tengo un codigo javascript en el cual pretendo realizar una resta de dos campos y plasmarlos en un tercer campo, les muestro mi codigo javascript:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
<script type="text/javascript">
 function Sumar(f_inicial, f_final, unidades)
   {
    var objCamp1=document.getElementById(f_inicial);
    var objCamp2=document.getElementById(f_final);
    var objCamp3=document.getElementById(unidades);
 
        //Supongamos qe si o si existen los campos... :P
    if ((objCamp1.value!='') && (objCamp2.value!=''))
    {
        objCamp3.value=parseInt(objCamp2.value) - parseInt(objCamp1.value);
    }
   }
</script>

y mi codigo php y html seria el siguiente:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
<table class="tablesorter">
            <tr>
        <td valign="middle" align="left" colspan="10">
 
                <p>
            <label><a href="<?php echo Conectar::ruta();?>dotacion/"><img src="<?php echo Conectar::ruta();?>public/images/arrow_left_32.png" border="0" width="24" height="24"></a></label>
 
            </p>
                </td>
            </tr>
            <tr>
           <td colspan="10">
 
            </td>
            </tr>
            <tr style="font-weight: bold" align="center">
                <td>Imagen</td>
                <td>Folio Inicial</td>
                <td>Folio Final</td>
                <td>Cantidad dotada</td>
                <td>Existencias</td>
                <td>Agregar</td>
            </tr>
            <?php
            for($i=0;$i<sizeof($datos);$i++){
            ?>
            <tr>
                <article>
                <td align="center"><p><?php echo $datos[$i]["boleto"];?><br/>
                    <img src="<?php echo Conectar::ruta(); ?>public/foto/<?php echo $datos[$i]["imagen"]; ?>" height="100" width="100" style="box-shadow: 0px 10px 15px rgba(0,0,0,0.4)" border=" 5px solid white"/><br/>
                    Precio:$<?php echo $datos[$i]["precio"];?>
                    </p></td>
 
                <td align="center"><input name="f_inicial" id="Sumar1" onBlur="Sumar('Sumar1','Sumar2','<?php echo $datos[$i]["id_boleto"];?>');" type="text" class="input medium" /></td>
 
                <td align="center"><input name="f_final" id="Sumar2" onBlur="Sumar('Sumar1','Sumar2','<?php echo $datos[$i]["id_boleto"];?>');" class="input medium" /></td>
 
                <td align="center"><input name="unidades" id="<?php echo $datos[$i]["id_boleto"];?>" value="Click para obtener resultado" onBlur="Sumar('Sumar1','Sumar2','<?php echo $datos[$i]["id_boleto"];?>');" type="text" class="input medium" /></td>
 
                <td align="center"><?php echo $datos[$i]["stock"];?></td>
                <td><button value="<?php echo $datos[$i]["id_boleto"];?>" class="botoncompra" >Agregar a dotación</button></td>
 
 
 
 
                </article>
            </tr>
           <?php
            }
            ?>
        </table>

y les muestro el resultado :



ojala puedan orientarme para resolver este problema como les comento los campos son generados por medio de un bucle for desde php tal vez ahi este el problema y no estoy viendo la solución.

como siempre estare agradecido por su ayuda y en caso de resolverlo como en todas las ocasiones que he acudido a ustedes posteare la solución para alguna persona que se encuentre con este mispo problema.

mil gracias

Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de xve

Problemas con resta en campos generados por un for

Publicado por xve (557 intervenciones) el 05/07/2014 10:15:59
Hola Israel, viendo tu código, creo que el problema esta en que repites los id's Sumar1 y Sumar2 tres veces, por lo que el navegador, siempre te coge los primeros.

Recuerda que no debería haber ningún id repetido.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Problemas con resta en campos generados por un for

Publicado por Israel (11 intervenciones) el 05/07/2014 16:30:01
Muchisimas gracias XVE ya tenia bastante con este problema, y cierto que es mejor hacer ver el error, que dar la solución hecha.

Para las personas que tengan esta misma duda les comento que como son cajas de texto generadas por un bucle for es logico que el id asignado debe de ser dinamico para que asi las cajas de texto no tengan el mismo id y el navegador no tomo solo el primer resultado, a continuacion les muestro las parte del codigo que se corrigio.


1
2
3
4
5
6
7
8
9
10
11
12
13
14
<article>
                <td align="center"><p><?php echo $datos[$i]["boleto"];?><br/>
                    <img src="<?php echo Conectar::ruta(); ?>public/foto/<?php echo $datos[$i]["imagen"]; ?>" height="100" width="100" style="box-shadow: 0px 10px 15px rgba(0,0,0,0.4)" border=" 5px solid white"/><br/>
                    Precio:$<?php echo $datos[$i]["precio"];?>
                    </p></td>
 
                <td align="center"><input name="f_inicial" id="Sumar1<?php echo $datos[$i]["id_boleto"];?>" onBlur="Sumar('Sumar1<?php echo $datos[$i]["id_boleto"];?>','Sumar2<?php echo $datos[$i]["id_boleto"];?>','<?php echo $datos[$i]["id_boleto"];?>');" type="text" class="input medium" /></td>
 
                <td align="center"><input name="f_final" id="Sumar2<?php echo $datos[$i]["id_boleto"];?>" onBlur="Sumar('Sumar1<?php echo $datos[$i]["id_boleto"];?>','Sumar2<?php echo $datos[$i]["id_boleto"];?>','<?php echo $datos[$i]["id_boleto"];?>');" class="input medium" /></td>
 
                <td align="center"><input name="unidades" id="<?php echo $datos[$i]["id_boleto"];?>" value="Click para obtener resultado" onBlur="Sumar('Sumar1<?php echo $datos[$i]["id_boleto"];?>','Sumar2<?php echo $datos[$i]["id_boleto"];?>','<?php echo $datos[$i]["id_boleto"];?>');" type="text" class="input medium" /></td>
 
                <td align="center"><?php echo $datos[$i]["stock"];?></td>
                <td><button value="<?php echo $datos[$i]["id_boleto"];?>" class="botoncompra" >Agregar a dotación</button></td>

Quiero agradecer a XVE que sin su ayuda desinteresada no estuviera aprendiendo lo que he aprendido que ya es bastante, muchas gracias XVE y espero les sirva a alguna otra persona este codigo
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar