Foros del Web » Programando para Internet » PHP »

sumar

Estas en el tema de sumar en el foro de PHP en Foros del Web. hola estoy haciendo un formulario de una factura la idea es que cuando ponga valor unitario, cantidad, me saque un total es decir multiplicar valor ...
  #1 (permalink)  
Antiguo 23/02/2008, 21:18
 
Fecha de Ingreso: agosto-2004
Mensajes: 440
Antigüedad: 19 años, 8 meses
Puntos: 2
sumar

hola estoy haciendo un formulario de una factura la idea es que cuando ponga valor unitario, cantidad, me saque un total es decir multiplicar valor unitario por cantidad, pero no tengo ni idea de como se pueda hacer eso con php agradezco su ayuda
__________________
paty :adios:
  #2 (permalink)  
Antiguo 23/02/2008, 21:37
 
Fecha de Ingreso: noviembre-2006
Mensajes: 437
Antigüedad: 17 años, 5 meses
Puntos: 3
Re: sumar

Hola miltza.Te pongo un ejemplo para recoger las variables (en este caso via POST),hacer la multiplicación de los 2 valores y posteriormente imprimir el resultado:

Cita:
<?php
$cantidad=$_POST['cantidad'];
$valor=$_POST['valor'];

$total=$cantidad*$valor;

echo $total;
?>
Las variables $_POST han de tener el nombre del campo del formulario.

Un saludo
  #3 (permalink)  
Antiguo 23/02/2008, 21:52
 
Fecha de Ingreso: agosto-2004
Mensajes: 440
Antigüedad: 19 años, 8 meses
Puntos: 2
Re: sumar

oye una pregunta de esta forma si ingreso el valor unitario y luego la cantidad inmediatamente despues de ingresar estos dos valores en la tercera casilla me muestra el total??
__________________
paty :adios:
  #4 (permalink)  
Antiguo 24/02/2008, 11:17
 
Fecha de Ingreso: noviembre-2006
Mensajes: 437
Antigüedad: 17 años, 5 meses
Puntos: 3
Re: sumar

No entiendo lo que quieres decir, enseña tu código donde está el formulario y el del php que lo procesa y te podre ser de mas ayuda.
El ejemplo que te he puesto lo que hace es al ser enviado recoger 2 valores del formulario(cantidad,valor),los multiplica y imprime el resultado por pantalla.
Un saludo
  #5 (permalink)  
Antiguo 25/02/2008, 14:53
 
Fecha de Ingreso: agosto-2004
Mensajes: 440
Antigüedad: 19 años, 8 meses
Puntos: 2
Re: sumar

lo tuya me funciono perfectmente eso es lo que necesito mi pregunta es si no hay forma que cuando tu ingreses el valor y la cantidad haga esa operacion del total en esa misma pagina no cuando se envien los datos sino hay mismo ya q en el formulario hay un campo para escribir el valor total en letras ysi lo hago que mecalcule enviando el formulario ya no podria ingresar el valor en letras
__________________
paty :adios:
  #6 (permalink)  
Antiguo 25/02/2008, 15:07
 
Fecha de Ingreso: enero-2008
Mensajes: 73
Antigüedad: 16 años, 3 meses
Puntos: 0
Re: sumar

lo puedes hacer de esta manera hay te envio un codigo, lo que tu quieres no se puede hacer con php tienes que meterle algo de javascript.

prueba este codigo

el secreto esta en lo que va de color es muy facil espero que te sirva


<html>
<head>
<title>detalles de venta</title>

<script type="text/javascript">
function sumar(frm) {
cv = frm.Cantidad_Vendida.value;
vu = frm.Valor_Unitario.value;

if (cv=='' || isNaN(cv)) cv = 0;
if (vu=='' || isNaN(vu))vu = 0;

frm.Valor_Total.value =parseFloat(cv) * parseFloat(vu);
}
</script>


charset=iso-8859-1"></head>
<body background="MAIN.JPG">
<div id="Layer1" style="position:absolute; left:284px; top:76px; width:427px; height:141px; z-index:1">
<form name="formulario" method="post" action="<?php echo $PHP_SELF?>">
<table width="98%" height="117" border="0">
<tr>
<td width="51%"><strong><font color="#990000" size="3" face="Arial, Helvetica, sans-serif">Numero
De Factura </font></strong></td>
<td width="49%"><input type="text" name="Num_Factura"></td>
</tr>
<tr>
<td><strong><font color="#990000" size="3" face="Arial, Helvetica, sans-serif">Codigo
De Producto</font></strong></td>
<td><input type="text" name="Cod_Producto"></td>
</tr>
<tr>
<td><strong><font color="#990000" size="3" face="Arial, Helvetica, sans-serif">Cantidad
Vendida</font></strong></td>
<td><input type="text" name="Cantidad_Vendida" onkeyup = "sumar(this.form)" /></td>
</tr>
<tr>
<td><strong><font color="#990000" size="3" face="Arial, Helvetica, sans-serif">Valor
Unitario</font></strong></td>
<td><input type="text" name="Valor_Unitario" onkeyup = "sumar(this.form)" /></td>
</tr>
<tr>
<td><strong><font color="#990000" size="3" face="Arial, Helvetica, sans-serif">Valor
Total</font></strong></td>
<td><input type="text" name="Valor_Total" readonly="readonly"></td>
</tr>
</table>
<div id="Layer2" style="position:absolute; left:31px; top:145px; width:433px; height:29px; z-index:2">
<table width="94%" border="0">
<tr>
<td width="43%"><input name="Submit" type="submit" value="Registrar" onclick="this.form.action='proceso_form_detalles_f actura_venta.php'" /></td>
<td width="57%"><input type="submit" name="Submit2" value="Generar Factura" onclick="this.form.action='generar_factura.php'" /></td>
</tr>
</table>
</div>
<p>&nbsp;</p>
</form>
</div>
<div id="Layer3" style="position:absolute; left:298px; top:39px; width:365px; height:16px; z-index:3">
<div align="center"><font color="#990000" size="3" face="Arial, Helvetica, sans-serif"><strong>Detalles
De Venta</strong></font></div>
</div>
</body>
</html>
  #7 (permalink)  
Antiguo 25/02/2008, 17:23
 
Fecha de Ingreso: agosto-2004
Mensajes: 440
Antigüedad: 19 años, 8 meses
Puntos: 2
Re: sumar

oye muhcas gracias esta perfecto cualquier cosa que necesite te aviso nueamente gracias
__________________
paty :adios:
  #8 (permalink)  
Antiguo 25/02/2008, 17:56
 
Fecha de Ingreso: agosto-2004
Mensajes: 440
Antigüedad: 19 años, 8 meses
Puntos: 2
Re: sumar

oye ya hice lo que me dijiste perfeco pero ahora cuando envio los datos a la base de datos no me esta cogiendo esos datos aqui esta mi codigo

Código HTML:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Factura::Imprimir</title>

<script type="text/javascript">
function sumar(frm) {
cv = frm.cantidad.value;
vu = frm.valoru.value;
iv = frm.iva.value;
vt = frm.total.value;

if (cv=='' || isNaN(cv)) cv = 0;
if (vu=='' || isNaN(vu))vu = 0;
if (iv=='' || isNaN(iv))iv = 0;
if (vt=='' || isNaN(vt))vt = 0;

frm.total.value =parseFloat(cv) * parseFloat(vu);
frm.subtotal.value=frm.total.value;
frm.iva.value =parseFloat(frm.total.value) * 0.16;
frm.valortotal.value =parseFloat(frm.iva.value) + parseFloat(frm.subtotal.value);
}
</script>
<head>

<body>

<form action="imprimefactura.php" method="post" >
  <div id="descripcion">
  <table width="100%" height="204" border="1" cellpadding="0" cellspacing="0" bordercolor="#000000">
    <tr>
      <td width="49%" height="33"><div align="center"><span class="Estilo12">DESCRIPCION</span></div></td>
      <td width="18%"><div align="center"><span class="Estilo12">VALOR UNITARIO </span></div></td>
      <td width="16%"><div align="center" class="Estilo12">CANTIDAD</div></td>
      <td width="17%"><div align="center" class="Estilo12">TOTAL</div></td>
    </tr>
    <tr>
      <td height="98"><textarea name="descripcion" cols="40" rows="5"></textarea></td>
      <td height="98"><div align="center">
        <input name="valoru" type="text" id="valoru" size="15" onkeypress= "return acceptNum(event)" onkeyup = "sumar(this.form)"/>
      </div></td>
      <td height="98"><div align="center">
        <input name="cantidad" type="text" id="cantidad" size="15" onkeypress= "return acceptNum(event)" onkeyup = "sumar(this.form)"/>
      </div></td>
      <td height="98"><div align="center">
        <input name="total" type="text" id="total" size="15"  disabled="disabled" />
      </div></td>
    </tr>
    <tr>
      <td colspan="2" rowspan="3" valign="top"><span class="Estilo12">VALOR EN LETRAS </span><br />
          <br />
          <input name="letras" type="text" id="letras" size="80" /> </td>
      <td height="24"><div align="center" class="Estilo12">SUBTOTAL</div></td>
      <td height="24"><div align="center">
        <input name="subtotal" type="text" id="subtotal" size="15" disabled="disabled"/>
      </div></td>
    </tr>
    <tr>
      <td height="24"><div align="center" class="Estilo12">IVA</div></td>
      <td height="24"><div align="center">
        <input name="iva" type="text" id="iva" size="15" disabled="disabled" onkeyup = "sumar(this.form)"/>
      </div></td>
    </tr>
    <tr>
      <td height="23"><div align="center"><span class="Estilo12">VALOR TOTAL </span></div></td>
      <td height="23"><div align="center">
        <input name="valortotal" type="text" id="valortotal" size="15" disabled="disabled" onkeyup = "sumar(this.form)"/>
      </div></td>
    </tr>
  </table>
</div>
<table width="927" height="611" border="0" align="left">
  <tr>
    <td width="917" height="607">&nbsp;</td>
  </tr>
</table>
<div id="Layer3">
  <div align="center"><span class="Estilo8">
    <input name="enviar" type="button" id="enviar" onclick="validar(this.form)" value="Enviar"/>
    <input name="borrar" type="reset" id="borrar" value="Borrar"/>
  </span></div>
</div>
</form>
</body> 
estoy recibiendo los valores

$valoru=$_POST["valoru"];
$cantidad=$_POST["cantidad"];
$total=$_POST["total"];
$subtotal=$_POST["subtotal"];
$iva=$_POST["iva"];
$valortotal=$_POST["valortotal"];
__________________
paty :adios:

Última edición por niltza; 25/02/2008 a las 18:09
  #9 (permalink)  
Antiguo 26/02/2008, 09:17
 
Fecha de Ingreso: enero-2008
Mensajes: 73
Antigüedad: 16 años, 3 meses
Puntos: 0
Re: sumar

Hola tendrias que enviarme el codigo php donde insetas para poder ayudarte para poder ayudarte mejor...
  #10 (permalink)  
Antiguo 26/02/2008, 09:24
 
Fecha de Ingreso: enero-2008
Mensajes: 73
Antigüedad: 16 años, 3 meses
Puntos: 0
Re: sumar

tienes el input enviar mal definido

<input name="enviar" type="button" id="enviar" onclick="validar(this.form)" value="Enviar"/>

tiene que ir de esta manera

<input name="Submit" type="submit" value="enviar" onclick="this.form.action='proceso_para_registrar_ en_base.php'" />

donde proceso_para_registrar_en_base.php esta el insert para registrar en base de datos y tienes que quitar el action de la etiqueta <form action> porque el boton ya lo esta haciendo con el .action.

si tienes alguna duda me avisas
  #11 (permalink)  
Antiguo 26/02/2008, 10:12
 
Fecha de Ingreso: agosto-2004
Mensajes: 440
Antigüedad: 19 años, 8 meses
Puntos: 2
Re: sumar

me podrias por fa regalar tu correopara enviarte lo queyo tengo, y en cuanto al boton enviar esta bien porque tengo una funcion de validacion en javascript y son los mismos botones que utilizoo en todos los formularios pero pues si me regalas tu correo te envio todo el codigo
__________________
paty :adios:
  #12 (permalink)  
Antiguo 26/02/2008, 11:13
 
Fecha de Ingreso: agosto-2004
Mensajes: 440
Antigüedad: 19 años, 8 meses
Puntos: 2
Re: sumar

hola ya te envie el correo pero me reboto
__________________
paty :adios:

Última edición por niltza; 26/02/2008 a las 11:23
  #13 (permalink)  
Antiguo 26/02/2008, 11:37
Avatar de Carlojas  
Fecha de Ingreso: junio-2007
Ubicación: Shikasta
Mensajes: 1.272
Antigüedad: 16 años, 10 meses
Puntos: 49
Re: sumar

Para eviar los datos el boton debe ser de tipo submit

Código HTML:
<input name="enviar" type="submit" id="enviar" value="Enviar"/> 
otra observacion puedes poner el codigo del script que deberia insertar los datos en tu BD, la validacion de los campos y sus operaciones la puedes hacer perfectamente desde PHP

Saludos.
  #14 (permalink)  
Antiguo 26/02/2008, 11:53
 
Fecha de Ingreso: agosto-2004
Mensajes: 440
Antigüedad: 19 años, 8 meses
Puntos: 2
Re: sumar

mira ya lo he probado con el boton enviar es decirsubmit y tampoco lo tengo asi porqtengo una funcion javascript q me verifica datos obligatorios y q cuando los datos obligaorios esten llenos entonces envie. la persona q por fa me quiera colaborar me podria dar su correo para que se mas facil asi envio todo el script para q puedan verq es lo que tengo mil gracias
__________________
paty :adios:
  #15 (permalink)  
Antiguo 26/02/2008, 11:56
Avatar de Carlojas  
Fecha de Ingreso: junio-2007
Ubicación: Shikasta
Mensajes: 1.272
Antigüedad: 16 años, 10 meses
Puntos: 49
Re: sumar

Entiendo lo que me dices pero es mas seguro si haces la validacion de tus datos en PHP.


Saludos.
  #16 (permalink)  
Antiguo 26/02/2008, 12:02
 
Fecha de Ingreso: agosto-2004
Mensajes: 440
Antigüedad: 19 años, 8 meses
Puntos: 2
Re: sumar

Y a que te refieres con lavalidacion de los datos en php?? q pena la ignorancia
__________________
paty :adios:
  #17 (permalink)  
Antiguo 26/02/2008, 12:06
Avatar de Carlojas  
Fecha de Ingreso: junio-2007
Ubicación: Shikasta
Mensajes: 1.272
Antigüedad: 16 años, 10 meses
Puntos: 49
Re: sumar

Segun veo intentas insertar los datos que recoges del formulario en tu BD entonces antes del insert haces la validaciones pertinentes. me explico lo que haces con JavaScript pues lo haces en tu script imprimefactura.php por ejemplo pones esto en imprimefactura

Código PHP:
foreach( $_POST as $datos )
{
    if (empty(
$datos) )
    {
         echo 
"Faltan datos por digitar en el formulario";
         exit();
    }

a esto mas o menos me refiero. aqui validas que se hayan digitado todos los datos antes de realizar el insert.

Saludos.
  #18 (permalink)  
Antiguo 26/02/2008, 12:57
 
Fecha de Ingreso: agosto-2004
Mensajes: 440
Antigüedad: 19 años, 8 meses
Puntos: 2
Re: sumar

ok voy a intentarlo pero mi problema es el otro el delos calculos no me lleva los datos ni con submit porque ya probe
__________________
paty :adios:

Última edición por niltza; 26/02/2008 a las 13:25
  #19 (permalink)  
Antiguo 26/02/2008, 13:55
 
Fecha de Ingreso: enero-2008
Mensajes: 73
Antigüedad: 16 años, 3 meses
Puntos: 0
Re: sumar

que pena contigo


[email protected]

[email protected]
  #20 (permalink)  
Antiguo 26/02/2008, 13:59
 
Fecha de Ingreso: enero-2008
Mensajes: 73
Antigüedad: 16 años, 3 meses
Puntos: 0
Re: sumar

De todas maneras aqui te envio un codigo completo que yo tengo donde esta todo lo que tu quieres validar y las operaciones guiate bien

hay va

Código HTML:
<html>
<head>
<title>detalles de venta</title>
<script type="text/javascript">
function sumar(frm) {
  cv = frm.Cantidad_Vendida.value;
  vu = frm.Valor_Unitario.value;
  
  if (cv=='' || isNaN(cv)) cv = 0;
  if (vu=='' || isNaN(vu))vu = 0;
  
 frm.Valor_Total.value =parseFloat(cv) * parseFloat(vu);
}
</script>
<script>
function valida(formulario){

	er=/^[0-9]+$/;
	if(er.test(formulario.Num_Factura.value)==false){
		alert("El campo numero factura es obligatorio y de tipo numerico");
		return false; // NO se enviará el formulario.
	}
		er=/^[0-9a-zA-Z ñÑáéíóúÁÉÍÓÚuüÜÇç]+$/;
	if(er.test(formulario.Cod_Producto.value)==false){
		alert("El campo codigo producto obligatorio y de tipo alfanumerico");
		return false; // NO se enviará el formulario.
	}
		er=/^[0-9]+$/;
	if(er.test(formulario.Cantidad_Vendida.value)==false){
		alert("El campo cantidad vendida es obligatorio");
		return false; // NO se enviará el formulario.
	}
	er=/^[0-9]+$/;
	if(er.test(formulario.Valor_Unitario.value)==false){
		alert("El campo valor unitario es obligatorio y numerico");
		return false; // NO se enviará el formulario.
	}

	er=/^[0-9]+$/;
	if(er.test(formulario.Valor_Total.value)==false){
		alert("el campo total se calcula por defecto");
		return false; // NO se enviará el formulario.
	}
	
	
	return true; // Se enviará el formulario.
}
</script>

<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"></head>
<body background="MAIN.JPG">
<div id="Layer1" style="position:absolute; left:284px; top:76px; width:427px; height:141px; z-index:1"> 
  <form [COLOR="DarkOrange"]onSubmit="return valida(formulario)" [/COLOR]name="formulario" method="post"  action="<?php echo $PHP_SELF?>">
    <table width="98%" height="117" border="0">
      <tr> 
        <td width="51%"><strong><font color="#990000" size="3" face="Arial, Helvetica, sans-serif">Numero 
          De Factura </font></strong></td>
        <td width="49%"><input type="text" name="Num_Factura"></td>
      </tr>
      <tr> 
        <td><strong><font color="#990000" size="3" face="Arial, Helvetica, sans-serif">Codigo 
          De Producto</font></strong></td>
        <td><input type="text" name="Cod_Producto"></td>
      </tr>
      <tr> 
        <td><strong><font color="#990000" size="3" face="Arial, Helvetica, sans-serif">Cantidad 
          Vendida</font></strong></td>
        <td><input type="text" name="Cantidad_Vendida"  onkeyup = "sumar(this.form)" /></td>
      </tr>
      <tr> 
        <td><strong><font color="#990000" size="3" face="Arial, Helvetica, sans-serif">Valor 
          Unitario</font></strong></td>
        <td><input type="text" name="Valor_Unitario" onkeyup = "sumar(this.form)" /></td>
      </tr>
      <tr> 
        <td><strong><font color="#990000" size="3" face="Arial, Helvetica, sans-serif">Valor 
          Total</font></strong></td>
        <td><input type="text" name="Valor_Total" readonly="readonly"></td>
      </tr>
    </table>
    <div id="Layer2" style="position:absolute; left:31px; top:145px; width:433px; height:29px; z-index:2"> 
      <table width="94%" border="0">
        <tr> 
          <td width="43%"><input name="Submit" type="submit" value="Registrar" onclick="this.form.action='proceso_form_detalles_factura_venta.php'" /></td>
          <td width="57%"><input type="submit" name="Submit2" value="Generar Factura" onclick="this.form.action='generar_factura.php'" /></td>
        </tr>
      </table>
    </div>
    <p>&nbsp;</p>
  </form>
</div>
<div id="Layer3" style="position:absolute; left:298px; top:39px; width:365px; height:16px; z-index:3"> 
  <div align="center"><font color="#990000" size="3" face="Arial, Helvetica, sans-serif"><strong>Detalles 
    De Venta</strong></font></div>
</div>
</body>
</html> 
mira muy bien la etiqueta form y los botones.

saludos
  #21 (permalink)  
Antiguo 26/02/2008, 19:55
 
Fecha de Ingreso: agosto-2004
Mensajes: 440
Antigüedad: 19 años, 8 meses
Puntos: 2
Re: sumar

voy a ver tu codigo pero igual ya teenvie los mios a tus correos gracias
__________________
paty :adios:
  #22 (permalink)  
Antiguo 27/02/2008, 08:36
 
Fecha de Ingreso: enero-2008
Mensajes: 73
Antigüedad: 16 años, 3 meses
Puntos: 0
Re: sumar

Mira tu codigo me sirvio para insertar pero cambiandole el

button por submit

y insert de esta forma, claro con todos los campos de tu base de datos con este yo probe y me funciono bien.

Código PHP:
$insertar"insert into factura(cliente, contacto, telefono) VALUES ('$cliente','$contacto','$telefono')"
que estes bien
espero que te ayude...
  #23 (permalink)  
Antiguo 27/02/2008, 12:43
 
Fecha de Ingreso: agosto-2004
Mensajes: 440
Antigüedad: 19 años, 8 meses
Puntos: 2
Re: sumar

hola ya probe como tu dices pero solo me inserta cantidad y valorunitario los calculos q estoy haciendo para total, subtotal iva y valor total no me los procesa ni me los inserta
__________________
paty :adios:

Última edición por niltza; 27/02/2008 a las 12:48
  #24 (permalink)  
Antiguo 27/02/2008, 14:10
 
Fecha de Ingreso: enero-2008
Mensajes: 73
Antigüedad: 16 años, 3 meses
Puntos: 0
Re: sumar

hola niltza

mira yo te dije que le colocaras readonly porque el disable esta inactivando la cja de texto.

Código HTML:
<input name="valortotal" type="text" id="valortotal" size="15"  readonly="readonly" onkeyup = "sumar(this.form)"/> 

asi ya funciona a la perfeccion que estas bien

anexo

Código PHP:
$insertar"insert into factura(ano, mes, dia, cliente, contacto, documento, direccion, telefono, ciudad, descripcion, valoru, cantidad, total, subtotal, iva, valortotal,letras, numfactura) VALUES ('$ano', '$mes', '$dia', '$cliente', '$contacto', '$documento', '$direccion', '$telefono', '$ciudad', '$descripcion', '$valoru', '$cantidad', '$total', '$subtotal', '$iva', '$valortotal','$letras', '$numfactura')"
  #25 (permalink)  
Antiguo 27/02/2008, 14:15
 
Fecha de Ingreso: agosto-2004
Mensajes: 440
Antigüedad: 19 años, 8 meses
Puntos: 2
Re: sumar

hola pues buenas noticias ya se paso pues q yo tenia deshabilitados esos campos para q no escribieran y por eso no me llevaba los datos completos pero igual muchisimas gracias a todos los q me ayudaron
__________________
paty :adios:
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

SíEste tema le ha gustado a 1 personas




La zona horaria es GMT -6. Ahora son las 10:08.