Foros del Web » Programando para Internet » PHP »

Ayuda en multiplicar una variable por el valor de un input

Estas en el tema de Ayuda en multiplicar una variable por el valor de un input en el foro de PHP en Foros del Web. Hola! Estoy haciendo una mini aplicación que permita multiplicar el valor de una variable por el valor de un input. Creo que está todo bien, ...
  #1 (permalink)  
Antiguo 06/02/2009, 06:18
 
Fecha de Ingreso: enero-2006
Ubicación: Barcelona, España
Mensajes: 126
Antigüedad: 18 años, 10 meses
Puntos: 1
Ayuda en multiplicar una variable por el valor de un input

Hola!

Estoy haciendo una mini aplicación que permita multiplicar el valor de una variable por el valor de un input. Creo que está todo bien, sin embargo cuando pongo los valores en el input, no me realiza la multiplicación.

Los pasos que he hecho son los siguientes:

Declaro el valor de la variable:

$kptes = 4.2;

Creo el input:

<input type=text name=num1>

Creo la función:

$calculo1=$kglu*$num1;

Pongo la salida:

$calculo1

¿En qué me estoy equivocando?


Muchas gracias de antemano
  #2 (permalink)  
Antiguo 06/02/2009, 07:29
Avatar de rodno  
Fecha de Ingreso: enero-2009
Ubicación: En algun lugar de Cuba
Mensajes: 426
Antigüedad: 15 años, 9 meses
Puntos: 43
De acuerdo Respuesta: Ayuda en multiplicar una variable por el valor de un input

Saludos,

Prueba esto:

Código PHP:
<html>
<head>
<title>Documento sin t&iacute;tulo</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>

<body>
<form name="form1" method="post" action="x.php?m=1">
  <p>
    <input type="text" name="m1">
</p>
  <p>
    <input type="text" name="m2">
</p>
  <p>
    <input type="submit" name="Submit" value="Enviar">
</p>
  <p>&nbsp; </p>
</form>
<?php 
if ($_GET['m']==1)
{
echo 
$_POST['m1']*$_POST['m2'];
}

 
?>
</body>
</html>
  #3 (permalink)  
Antiguo 06/02/2009, 08:02
 
Fecha de Ingreso: enero-2006
Ubicación: Barcelona, España
Mensajes: 126
Antigüedad: 18 años, 10 meses
Puntos: 1
Respuesta: Ayuda en multiplicar una variable por el valor de un input

Gracias por la respuesta rodno. La idea que tenia es que me gustaria poder hacer lamultiplicación sin necesidad de pulsar un botón. Este es el código que tengo:

Código PHP:
<!-- Manual de PHP de WebEstilo.com -->
<html>
<head>
   <title>Ejemplo de PHP</title>
</head>
<body>
<?php

   $kptes 
4.2;
   
$kglu 4.1;
   
$klip 9.3;

$calculo1=$kglu*$num1;

$calculo2=$klip*$num2;

$calculo3=$kptes*$num3;

printf("<TABLE BORDER=1 CELLPADDING=8>"); 

 echo 
$kptes,"<br>",$kglu,"<br>",$klip;

 
printf ("<tr> <TD>  </TD><TD>  Gramos consumidos</TD><TD>  KCalorías consumidas</TD></tr>");       

 
printf ("<tr><td>Hidratos de carbono</td><td><input type=text name=num1></td><td>$calculo1</td></tr>");

 
printf ("<tr> <td>Lípidos</td><td><input type=text name=num2></td><TD>$calculo2</TD></tr>"); 

 
printf ("<tr> <td>Proteínas</td><td><input type=text name=num3></td><td>$calculo3</td></tr>");  


printf("</table>"); 



?>


</body>
</html>
Muchas gracias.
  #4 (permalink)  
Antiguo 06/02/2009, 08:31
Avatar de Ronruby  
Fecha de Ingreso: julio-2008
Ubicación: 18°30'N, 69°59'W
Mensajes: 4.879
Antigüedad: 16 años, 4 meses
Puntos: 416
Respuesta: Ayuda en multiplicar una variable por el valor de un input

Entonces te equivocaste de lenguaje. PHP se ejecuta del lado del servidor, tienes que enviarle un request al servidor a este para recibir una respuesta. Para lo que tu deseas tienes que usar Javascript.
  #5 (permalink)  
Antiguo 06/02/2009, 09:02
Avatar de p3rikl3s  
Fecha de Ingreso: febrero-2009
Ubicación: Valencia
Mensajes: 216
Antigüedad: 15 años, 9 meses
Puntos: 9
Respuesta: Ayuda en multiplicar una variable por el valor de un input

Ronruby tiene razon. Tienes que hacerlo con javascripts, una manera de hacerlo es asi:

Tenemos un formulario:

Cita:
<body>
<form>

<input name="num1" type="text" value=""/>

<input name="num2" type="text" value="" onblur="multiplica(this.form)" />

<input name="res" type="text" value=""/>

</form>

</body>
Como ves, tiene 3 input: los 2 primeros para ingresar los numeros a multiplicar y un 3ero para mostrar el resultado. El input "num2" tiene evento onblur (el evento onblur captura la perdida del focus o cuando dejamos de seleccionar un objeto, en este caso un input) que llama a una funcion en javascripts llamada "multiplica" que recibe como parametro el formulario. Ahora pasemos a desarrollar la funcion javascripts "multiplica":

Cita:
<script language="javascript">

function multiplica(form){
var resultado;
var x=0;
var y=0;
x = parseInt (form.num1.value);
y = parseInt (form.num2.value);

resultado = x * y;

form.res.value=resultado;
}

</script>
Esta funcion multiplica los value de los input "num1" y "num2" y el resultado se lo asigna al input "res". Recuerda, veras el resultado de la multiplicacion cuando dejes el segundo input "num2", es decir, cuando hagas click afuera del input "num2".

Espero que te sirva. Saludos

Última edición por p3rikl3s; 06/02/2009 a las 09:10
  #6 (permalink)  
Antiguo 06/02/2009, 11:35
 
Fecha de Ingreso: enero-2006
Ubicación: Barcelona, España
Mensajes: 126
Antigüedad: 18 años, 10 meses
Puntos: 1
Respuesta: Ayuda en multiplicar una variable por el valor de un input

Ei!

Muchas gracias a ambos por vuestra ayuda! La verdad que no tenia ni idea del lenguaje que debía usar. Solo me dedico a esto como hobby. Voy a ver este fragmento que me has mandado y miraré de ir completandolo poco a poco.

La verdad que me gusta mucho esto de la programación aunque apenas tenga conocimientos sólidos.

Voy a ver que más hago y ya os lo mostraré a medida que vaya progresando.

Un saludo y gracias de nuevo!
  #7 (permalink)  
Antiguo 06/02/2009, 14:48
 
Fecha de Ingreso: enero-2006
Ubicación: Barcelona, España
Mensajes: 126
Antigüedad: 18 años, 10 meses
Puntos: 1
Respuesta: Ayuda en multiplicar una variable por el valor de un input

He estado practicando tu código y la verdad me ha ayudado mucho. Me ocurre un problema y es que lo que estoy buscando es que el usuario sólo tenga que rellenar un input ya que la otra variable a multiplicar la establezco yo desde el principio (quiero que sea estática).

Pienso que debo de modificar solámente el código de la función multiplica:

Código:
<script language="javascript">
function multiplica(form){
var resultado;
var x=0;
var kglu = 4.1;
var kptes = 4.2;
var klip = 9.3;
x = parseInt (form.num1.value);
resultado = x * kglu;
form.res.value=resultado;
}
</script>
He hecho lo anterior pero no sé porque no me funciona como deberia. En cuanto al input le he aplicado el evento onblur al form 1 y el input resultado lo he dejado tal y como estaba.

En que estoy fallando?

Muchas gracias de antemano!
  #8 (permalink)  
Antiguo 06/02/2009, 15:19
Avatar de p3rikl3s  
Fecha de Ingreso: febrero-2009
Ubicación: Valencia
Mensajes: 216
Antigüedad: 15 años, 9 meses
Puntos: 9
Respuesta: Ayuda en multiplicar una variable por el valor de un input

Mmm es raro...Veamos otra vez.

Primero el formulario:

Cita:
<form>

<input name="num2" type="text" value="" onblur="multiplica(this.form)" />

<input name="res" type="text" value=""/>

</form>
Ahora la funcion multiplica:

Cita:
<script language="javascript">

function multiplica(form){
var resultado;
var x=0;
var kglu = 4.1;
var kptes = 4.2;
var klip = 9.3;
x = parseFloat (form.num2.value);
resultado = x * kglu;
form.res.value=resultado;
}
</script>
Notese que ahora yo utilizo en vez de parseInt, utilizo parseFloat. El parseInt convierte cadenas en entero, mientras que el parseFloat convierte cadenas en float o numeros con parte decimal. A pesar que con ambos funciona, te recomiendo usar el parseFloat por si el usuario ingresa decimales y no queremos que reviente el programa. Hay que hacer las cosas como son... =)

Nota: El código practicamente es el mismo que muestras, asi que el error debe estar en la llamada a la funcion javascripts o el nombre del input, revisa eso. Tambien te recomeindo limpiar la cache dle navegador de vez en cuando, eso tambien pasa a veces... De todas formas , el codigo que te doy funciona bien.

Espero que te sirva.... Saludos

Última edición por p3rikl3s; 06/02/2009 a las 15:25
  #9 (permalink)  
Antiguo 19/02/2010, 15:35
 
Fecha de Ingreso: febrero-2010
Mensajes: 7
Antigüedad: 14 años, 9 meses
Puntos: 0
Respuesta: Ayuda en multiplicar una variable por el valor de un input

BUENAS COMPADRE TENGO EL SIGUIENTE CODIGO, QUISIERA QUE LA MULTIPLICACION SE HICIERA EN VARIAS FILAS

<?php
include("conex.phtml");
$link=Conectarse();

if(isset($_POST['ok'])){

for ($i=1;$i<=$_POST["var_cont"];$i++)
{

echo "Numero de Fila: " ; echo $i;
echo " Codigo: "; echo $_POST["fecha_$i"];
echo " Cantidad: "; echo $_POST["codmina_1"];echo "<br>";
echo " Nombre: "; echo $_POST["deta_$i"];
echo " Cantidad: "; echo $_POST["cant_$i"];echo "<br>";
echo " Codigo: "; echo $_POST["vunit_$i"];
echo " Nombre: "; echo $_POST["iva_$i"];
echo " Cantidad: "; echo $_POST["total_$i"];echo "<br>";
echo " Cantidad: "; echo $_POST["tipg_$i"];echo "<br>";


mysql_query("INSERT INTO gasto (Fecha, Codigo_mina, Tgasto, Detalle, Cantidad, Valor_Unitario, Iva, Total)

VALUES ('{$_POST["fecha_$i"]}','{$_POST["codmina_1"]}','{$_POST["tipg_$i"]}','{$_POST["deta_$i"]}','{$_POST["cant_$i"]}','{$_POST["vunit_$i"]}','{$_POST["iva_$i"]}','{$_POST["total_$i"]}')",$link);

// Ahora comprobaremos que todo ha ido correctamente

$my_error = mysql_error($link);

if(!empty($my_error)) {

echo "Ha habido un error al insertar los valores. $my_error";

} else {
echo "Los datos han sido introducidos satisfactoriamente";
}
}
}
?>

<html>
<head>
<title>MINA NUEVA MED & CIA LTDA </title>
<td><img src="cabezote.jpg" width="1019" height="180" /></td>
<script language="JavaScript" type="text/javascript" src="ajax.js"></script>

</head>

<body>
<form id="form" name="form" action="<?php echo $_SERVER['PHP_SELF'];?>" method="post" onsubmit="asigna()">
<p>TABLA DE GASTOS </p>

<form name="form1" method="post" action="">
<table width="397" border="1" cellspacing="1" bordercolor="#000000" id="tabla" align="center">
<tr colspan="13" align="left">
<td align="center"><font color="#000000" size="3"><b>AGREGAR O ELIMINAR</b></font></td>
<td align="center"><font color="#000000" size="3"><b>CODIGO MINA</b></font></td>
<td bgcolor="#FFFFFF"><input type="text" size="25" name="codmina_1"/></td>
</tr>
<tr align="center">
<td valign="top"><input type="button" name="b1" value="[+]" onClick="addRowX()">
<input type="button" name="b2" value="[-]" onClick="borrar()"></td>
<td><p><font color="#000000" size="1">FECHA</font></p>
<p><font color="#000000" size="1">(AAAA-MM-DD)</font></p></td>
<td><font color="#000000" size="1">DETALLE</font></td>
<td><font color="#000000" size="1">CANTIDAD</font></td>
<td><font color="#000000" size="1">VR UNITARIO</font></td>
<td><font color="#000000" size="1">IVA</font></td>
<td><font color="#000000" size="1">TOTAL</font></td>
<td><font color="#000000" size="1">TIPO DE GASTO</font></td>
</tr>
<tr>
<td bgcolor="#FFFFFF"></td>
<td bgcolor="#FFFFFF"><input type="text" size="10"name="fecha_1"/></td>
<td bgcolor="#FFFFFF"><input type="text" size="25" name="deta_1" /></td>
<td bgcolor="#FFFFFF"><input type="text" size="4" name="cant_1" value="" /></td>
<td bgcolor="#FFFFFF"><input type="text" size="7" name="vunit_1" value="" onBlur="multiplica(this.form)"></td>
<td bgcolor="#FFFFFF"><input type="text" size="6" name="iva_1"/></td>
<td bgcolor="#FFFFFF"><input type="text" size="7" name="total_1" /></td>
<td bgcolor="#FFFFFF"><input type="text" size="20" name="tipg_1"/></td>
<input type="hidden" name="var_cont" value="evento1">
</tr>
</table>
</form>
<p><br>
</p>
<table border="0" id="tabla_f2" bordercolor="#6B238E" align="center">
<tr>
<td><input type="submit" name="ok" id="ok" value="GUARDAR" /></td>
</tr>
</table>

</body>
</html>

<script language='JavaScript'>
//////////////multiplicar() ///////////
function multiplica(form){

var resultado;
var x=0;
var y=0;
x = parseInt (form.cant_1.value);
y = parseInt (form.vunit_1.value);

resultado = x * y;

form.total_1.value=resultado;
}


//////////////agregar fila() ///////////

var cont=1;
function addRowX() //Esta la funcion que agrega las filas :
{

cont++;
var indiceFila=1;
myNewRow = document.getElementById('tabla').insertRow(-1);
myNewRow.id=indiceFila;
myNewCell=myNewRow.insertCell(-1);
myNewCell.innerHTML='<td></td>';
myNewCell=myNewRow.insertCell(-1);
myNewCell.innerHTML='<td><input type="text" size="10" name="fecha_'+cont+'" /></td>';
myNewCell=myNewRow.insertCell(-1);
myNewCell.innerHTML='<input type="text" size="25" name="deta_'+cont+'"/>';
myNewCell=myNewRow.insertCell(-1);
myNewCell.innerHTML='<input type="text" size="4" value="" name="cant_'+cont+'"/>';
myNewCell=myNewRow.insertCell(-1);
myNewCell.innerHTML='<input type="text" size="7" value="" onBlur="multiplica(this.form)" name="vunit_'+cont+'"/>';
myNewCell=myNewRow.insertCell(-1);
myNewCell.innerHTML='<input type="text" size="6" name="iva_'+cont+'"/>';
myNewCell=myNewRow.insertCell(-1);
myNewCell.innerHTML='<input type="text" size="7" value="" name="total_'+cont+'"/>';
myNewCell=myNewRow.insertCell(-1);
myNewCell.innerHTML='<input type="text" size="20" name="tipg_'+cont+'"/>';


indiceFila++;

}
//////////////Borrar() ///////////
function borrar() {
var table = document.getElementById('tabla');
if(table.rows.length > 3)
{
table.deleteRow(table.rows.length -1);
cont--;
}
}

////////////FUNCION ASIGNA VALOR DE CONT PARA EL FOR DE MOSTRAR DATOS MP-MOD-TT////////
function asigna()
{
valor=document.form.var_cont.value=cont;
}
</script>


AGRADECERIA QUE ME AYUDARAS EN LO QUE MAS PUEDE.

HE COPIADO EL CODIGO DE LA MULTIPLICACION PERO SOLO ME FUNCIONA PARA LA PRIMERA FILA Y NECESITO QUE SE EJECUTE EN LAS DEMAS FILAS
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 14:14.