Foros del Web » Programando para Internet » Javascript »

Sumar campos Dimanicos con javascript

Estas en el tema de Sumar campos Dimanicos con javascript en el foro de Javascript en Foros del Web. Hola tengo una consulta en mysql esta me muestra un campo de texto (caja1) con un valor y seguidamente coloco dos cajas de texto mas ...
  #1 (permalink)  
Antiguo 08/02/2011, 18:43
 
Fecha de Ingreso: mayo-2007
Mensajes: 23
Antigüedad: 12 años, 9 meses
Puntos: 0
Pregunta Sumar campos Dimanicos con javascript

Hola tengo una consulta en mysql esta me muestra un campo de texto (caja1) con un valor y seguidamente coloco dos cajas de texto mas una para ingresar un valor (caja2) y la segunda (caja 3) para que me muestre el valor de la suma de la caja1 y la caja2. Tengo un codigo pero no me funciona:

<?include ("conexion.php");
?>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1252">

<script type="text/javascript">
function Restar(){
interval = setInterval("calcular()",1);
}
function calcular(){
var objCampo1=document.getElementsByName('saldo[]');
var objCampo2=document.getElementsByName('fisico[]');
var resultado=document.getElementsByName('diferencia') ;
if((objCampo1.value!='')&&(objCampo2.value!=''))
{
resultado.value = parseInt(objCampo1.value)- parseInt(objCampo2.value);
}
}
function NoRestar(){
clearInterval(interval);
}
</script>

</head>
<body topmargin="0" leftmargin="0" rightmargin="0" bottommargin="0">
<div align="center">
<table cellpadding="0" cellspacing="0" width="749" height="139" border="3" frame="border" rules="none">
<form name="Form" method="POST" action="">
<tr>
<td valign="top" class="celdath" align="center" valign="middle" colspan="8" height="26">
INFORME GENERAL DE INVENTARIO</td>
</tr>
<tr>
<td valign="middle" class="celda" align="center" width="44">
</td>
<td valign="middle" align="center" class="celda" width="362">&nbsp;DESCRIPCION
ARTICULO</TD>
<td valign="middle" align="center" class="celda" width="94">ENTRADAS</TD>
<td valign="middle" align="center" class="celda" width="92">SALIDAS</TD>
<td valign="middle" align="center" class="celda" height="30" width="101">SALDO</TD>
<td valign="middle" align="center" class="celda" height="30" width="101">FISICO</TD>
<td valign="middle" align="center" class="celda" height="30" width="101">DIFERENCIA</TD>
<td width="38"></td>
</tr>
<tr>
<td colspan="8" height="10"><hr></td>
</tr>
<?
$_pagi_sql = "SELECT sm_pro.descripcion, sum( sm_kar.entradas ) AS entradas, sum( sm_kar.salidas ) AS salidas, sm_kar.id_art as id_art
FROM sm_kar, sm_pro WHERE sm_kar.id_art = sm_pro.id GROUP BY sm_kar.id_art order by sm_pro.descripcion";
[email protected]_query($_pagi_sql);
$num_rows = @mysql_num_rows($rs);
$x = 0;
$y = 10;
$z = 20;
if( $num_rows > 0) {
while ($row = @mysql_fetch_array($rs))
{
$entradas = $row["entradas"];
$salidas = $row["salidas"];
$saldo = $entradas - $salidas;
?>
<tr>
<td width="44" class="texto"></td>
<td width="362" class="texto"><? echo $row["id_art"];?>&nbsp;&nbsp; <? echo $row["descripcion"];?></td>
<td width="94" class="texto" align="right"><? echo $row["entradas"];?></td>
<td width="92" class="texto" align="right"><? echo $row["salidas"];?></td>
<td height="21" width="101" align="right" class="texto"><? echo $saldo;?>
</td>
<td width="38">
<input type="text" name="saldo[<?=$x;?>]" value='<? echo $saldo;?>'size="8" /></td>
<td width="38"><input type="text" name="fisico[<?=$y;?>]" size="8" onKeyUp="Calcular();"/></td>
<td><input type="text" name="resultado" id="resultado"></td>
</tr><? $x = $x+1;
$y = $y+1;
$z = $z+1; }

}
?>
<tr>
<td colspan="8" height="10"><hr></ht></td>
</tr>
<tr><td colspan="8" valign="center" align="center" class="celda">
<br></td></tr>

</form>
</table>
</div>
</body>
</html>

Les agradezco su ayuda es urgente !!!

Mil gracias
  #2 (permalink)  
Antiguo 08/02/2011, 19:23
 
Fecha de Ingreso: diciembre-2010
Mensajes: 788
Antigüedad: 9 años, 2 meses
Puntos: 50
Respuesta: Sumar campos Dimanicos con javascript

Con document.getElementsByName obtenés una colección de elementos ( un array ). Por lo que no podés acceder con objCampo1.value, sinó con objCampo1[0].value. Se manejan como array, no como objetos.
  #3 (permalink)  
Antiguo 09/02/2011, 07:56
 
Fecha de Ingreso: mayo-2007
Mensajes: 23
Antigüedad: 12 años, 9 meses
Puntos: 0
Respuesta: Sumar campos Dimanicos con javascript

Gracias por tu respuesta he realizado el cambio que me dices pero no funciona, ya no me sale error pero igual no me calcula, algo debo estar haciendo mal:
<script type="text/javascript">
function Restar(){
interval = setInterval("calcular()",1);
}
function calcular(){
var objCampo1=document.getElementsByName('saldo[]');
var objCampo2=document.getElementsByName('fisico[]');
var resultado=document.getElementsByName('diferencia') ;
if((objCampo1[0].value!='')&&(objCampo2[0].value!=''))
{
resultado.value = parseInt(objCampo1[0].value)- parseInt(objCampo2[0].value);
}
}
function NoRestar(){
clearInterval(interval);
}
</script>

tambien lo realice dentro de un for asi
<script type="text/javascript">
function Restar(){
interval = setInterval("calcular()",1);
}
function calcular(){
Elements = document.form.elements.length;
for(i=0;i<=(Elements-2);i++) {
var objCampo1=document.getElementsByName('saldo[i]');
var objCampo2=document.getElementsByName('fisico[i]');
var resultado=document.getElementsByName('diferencia') ;
if((objCampo1[i].value!='')&&(objCampo2[i].value!=''))
{
resultado.value = parseInt(objCampo1[i].value)- parseInt(objCampo2[i].value);
}
}
}
function NoRestar(){
clearInterval(interval);
}
</script>
pero igual no calcula...

Última edición por margarita02; 09/02/2011 a las 08:02
  #4 (permalink)  
Antiguo 09/02/2011, 08:27
Avatar de IsaBelM
Colaborador
 
Fecha de Ingreso: junio-2008
Mensajes: 5.032
Antigüedad: 11 años, 7 meses
Puntos: 1011
Respuesta: Sumar campos Dimanicos con javascript

lee este tema, te puede ayudar
  #5 (permalink)  
Antiguo 09/02/2011, 15:36
 
Fecha de Ingreso: mayo-2007
Mensajes: 23
Antigüedad: 12 años, 9 meses
Puntos: 0
Respuesta: Sumar campos Dimanicos con javascript

Muchas gracias por tu ayuda...

Realmente no tengo mucho conocimiento en javascript y no he podido darle con el chiste, me podrias ayudar porfavor.

Mil gracias
  #6 (permalink)  
Antiguo 09/02/2011, 15:37
 
Fecha de Ingreso: mayo-2007
Mensajes: 23
Antigüedad: 12 años, 9 meses
Puntos: 0
Respuesta: Sumar campos Dimanicos con javascript

Cita:
Iniciado por walterdevel Ver Mensaje
Con document.getElementsByName obtenés una colección de elementos ( un array ). Por lo que no podés acceder con objCampo1.value, sinó con objCampo1[0].value. Se manejan como array, no como objetos.
Gracias por tu respuesta he realizado el cambio que me dices pero no funciona, ya no me sale error pero igual no me calcula, algo debo estar haciendo mal:
<script type="text/javascript">
function Restar(){
interval = setInterval("calcular()",1);
}
function calcular(){
var objCampo1=document.getElementsByName('saldo[]');
var objCampo2=document.getElementsByName('fisico[]');
var resultado=document.getElementsByName('diferencia') ;
if((objCampo1[0].value!='')&&(objCampo2[0].value!=''))
{
resultado.value = parseInt(objCampo1[0].value)- parseInt(objCampo2[0].value);
}
}
function NoRestar(){
clearInterval(interval);
}
</script>

tambien lo realice dentro de un for asi
<script type="text/javascript">
function Restar(){
interval = setInterval("calcular()",1);
}
function calcular(){
Elements = document.form.elements.length;
for(i=0;i<=(Elements-2);i++) {
var objCampo1=document.getElementsByName('saldo[i]');
var objCampo2=document.getElementsByName('fisico[i]');
var resultado=document.getElementsByName('diferencia') ;
if((objCampo1[i].value!='')&&(objCampo2[i].value!=''))
{
resultado.value = parseInt(objCampo1[i].value)- parseInt(objCampo2[i].value);
}
}
}
function NoRestar(){
clearInterval(interval);
}
</script>
pero igual no calcula...
  #7 (permalink)  
Antiguo 09/02/2011, 15:44
 
Fecha de Ingreso: diciembre-2010
Mensajes: 788
Antigüedad: 9 años, 2 meses
Puntos: 50
Respuesta: Sumar campos Dimanicos con javascript

No, no funciona así:

con

Código Javascript:
Ver original
  1. var objCampo1=document.getElementsByName('saldo[]');

obtenés la colección de elementos con nombre saldo[],

luego recorres esa colección con el for, o sea:

Ej:

Código Javascript:
Ver original
  1. var objCampo1=document.getElementsByName('saldo[]');
  2. var sumaSaldos = 0;
  3. for(var i = 0; i < objCampo1.legth; i++) {
  4.    sumaSaldos += objCampo1[i].value;
  5. }

Pero como te dijo Isabel, tenés que leer la documentación, sinó no vas a comprender como funciona.
  #8 (permalink)  
Antiguo 09/02/2011, 16:01
 
Fecha de Ingreso: mayo-2007
Mensajes: 23
Antigüedad: 12 años, 9 meses
Puntos: 0
Respuesta: Sumar campos Dimanicos con javascript

muchas gracias por la ayuda, voy a estudiar el codigo y a documentarme

Etiquetas: campos
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 16:45.