Foros del Web » Programando para Internet » PHP »

calculadora:Error en el post

Estas en el tema de calculadora:Error en el post en el foro de PHP en Foros del Web. He realizado una calculadora. Cuando hago las operaciones y le digo enviar sale una ventana que dice"el resultado es". No me da el resultado de ...
  #1 (permalink)  
Antiguo 02/10/2010, 07:33
 
Fecha de Ingreso: septiembre-2010
Mensajes: 72
Antigüedad: 13 años, 7 meses
Puntos: 0
calculadora:Error en el post

He realizado una calculadora. Cuando hago las operaciones y le digo enviar sale una ventana que dice"el resultado es".
No me da el resultado de la operacion que hice.
Esto es lo que hice:
gracias por la ayuda

<html>
<form action='calculadora.php' method='post'>
<P> NUMERO A ELEGIR?<P>
numero1: <input type='text' name='operando1'size= '10' maxlength= '10'>
<br>
<P> OPERACION A REALIZAR</p>
<select size='10' name ='operador'>
<option value= '+' > + </option>
<option value= '-' > - </option>
<option value= '*' > * </option>
<option value= '/' > / </option>
</select>
<br>
<P> NUMERO A ELEGIR?<P>
numero2: <input type='text' name='operando2' size= '10' maxlength='10'>
<br> <BR>
<INPUT TYPE="SUBMIT" VALUE="ENVIAR RESULT" NAME="Enviar">
<br><br>
</form>
<?php
if (isset($_POST['+']))
{
$resultado=$_POST['operando1']+$_POST['operando2'];
}
if (isset($_POST['-']))
{
$resultado=$_POST['operando1']-$_POST['operando2'];
}
if (isset($_POST['*']))
{
$resultado=($_POST['operando1'])*($_POST['operando2']);
}
if (isset($_POST['/']))
{
$resultado=($_POST['operando1'])/($_POST['operando2']);
}
echo "El resultado es".$resultado;
?>
</body>
</html>
  #2 (permalink)  
Antiguo 02/10/2010, 08:25
Avatar de bLEx  
Fecha de Ingreso: mayo-2008
Ubicación: Villa Alemana, Chile
Mensajes: 181
Antigüedad: 16 años
Puntos: 5
Respuesta: calculadora:Error en el post

El problema es que estas usando mal los isset. Cuando colocas if(isset($_POST['+'])) lo que estas consultando es si se seteo el elemento cuyo atributo name es +.

Lo que debes hacer en este caso, es preguntar si se seteo operador y luego trabajar con su valor.

Asi te funciona
Código PHP:

<html>
<form action='calc.php' method='post'>
<P> NUMERO A ELEGIR?<P>
numero1: <input type='text' name='operando1'size= '10' maxlength= '10'>
<br>
<P> OPERACION A REALIZAR</p>
<select size='10' name ='operador'>
<option value= '+' > + </option>
<option value= '-' > - </option>
<option value= '*' > * </option>
<option value= '/' > / </option>
</select>
<br>
<P> NUMERO A ELEGIR?<P>
numero2: <input type='text' name='operando2' size= '10' maxlength='10'>
<br> <BR>
<INPUT TYPE="SUBMIT" VALUE="ENVIAR RESULT" NAME="Enviar">
<br><br>
</form>
<?php
if(isset($_POST['operador'])){
    
    
$operador $_POST['operador'];
    
    if (
$operador == '+')
    {
    
$resultado=$_POST['operando1']+$_POST['operando2'];
    }
    if (
$operador == '-')
    {
    
$resultado=$_POST['operando1']-$_POST['operando2'];
    }
    if (
$operador == '*')
    {
    
$resultado=($_POST['operando1'])*($_POST['operando2']);
    }
    if (
$operador == '/')
    {
    
$resultado=($_POST['operando1'])/($_POST['operando2']);
    }
    echo 
"El resultado es".$resultado;
}
?>
</body>
</html>
Suerte con la calculadora
Saludos!

Última edición por bLEx; 02/10/2010 a las 08:30 Razón: falto la suerte xD
  #3 (permalink)  
Antiguo 02/10/2010, 08:45
Avatar de egepe  
Fecha de Ingreso: diciembre-2009
Mensajes: 310
Antigüedad: 14 años, 4 meses
Puntos: 7
Respuesta: calculadora:Error en el post

tienes un par de problemas a mi entender

1) el valor de $_POST['operador'] no $_POST['+'], $_POST['-'], $_POST['*'],$_POST['/']

y 2) como haces la pregunta

hazlo así

if (($_POST['operador'])=="+")
{
$resultado=($_POST['operando1']) + ($_POST['operando2']);
}
if (($_POST['operador'])=="-")
{
$resultado=($_POST['operando1']) - ($_POST['operando2']);
}
if (($_POST['operador'])=="*")
{
$resultado=($_POST['operando1']) * ($_POST['operando2']);
}
if (($_POST['operador'])=="/")
{
$resultado=($_POST['operando1']) / ($_POST['operando2']);
}
echo "<br>El resultado es=".$resultado;

NOTA: trata de colocar los if anidados, podrías usar un switch case pero siempre es mejor por rápidez utilizar los if, aunq en este caso no tendrías problemas.

También puedes utilizar el isset en la pregunta y sería algo así
if (isset($_POST['operador']) && $_POST['operador']=="+")

puedes colocar el if (isset($_POST['operador'])) solo y luego el resto de los if, pero ya son estilos

Saludos
  #4 (permalink)  
Antiguo 02/10/2010, 09:22
 
Fecha de Ingreso: septiembre-2010
Mensajes: 72
Antigüedad: 13 años, 7 meses
Puntos: 0
Respuesta: calculadora:Error en el post

Cita:
Iniciado por bLEx Ver Mensaje
El problema es que estas usando mal los isset. Cuando colocas if(isset($_POST['+'])) lo que estas consultando es si se seteo el elemento cuyo atributo name es +.

Lo que debes hacer en este caso, es preguntar si se seteo operador y luego trabajar con su valor.

Asi te funciona
Código PHP:

<html>
<form action='calc.php' method='post'>
<P> NUMERO A ELEGIR?<P>
numero1: <input type='text' name='operando1'size= '10' maxlength= '10'>
<br>
<P> OPERACION A REALIZAR</p>
<select size='10' name ='operador'>
<option value= '+' > + </option>
<option value= '-' > - </option>
<option value= '*' > * </option>
<option value= '/' > / </option>
</select>
<br>
<P> NUMERO A ELEGIR?<P>
numero2: <input type='text' name='operando2' size= '10' maxlength='10'>
<br> <BR>
<INPUT TYPE="SUBMIT" VALUE="ENVIAR RESULT" NAME="Enviar">
<br><br>
</form>
<?php
if(isset($_POST['operador'])){
    
    
$operador $_POST['operador'];
    
    if (
$operador == '+')
    {
    
$resultado=$_POST['operando1']+$_POST['operando2'];
    }
    if (
$operador == '-')
    {
    
$resultado=$_POST['operando1']-$_POST['operando2'];
    }
    if (
$operador == '*')
    {
    
$resultado=($_POST['operando1'])*($_POST['operando2']);
    }
    if (
$operador == '/')
    {
    
$resultado=($_POST['operando1'])/($_POST['operando2']);
    }
    echo 
"El resultado es".$resultado;
}
?>
</body>
</html>
Suerte con la calculadora
Saludos!
Ya lo pude hacer. Gracias por la ayuda
Bendiciones
  #5 (permalink)  
Antiguo 02/10/2010, 09:24
Avatar de egepe  
Fecha de Ingreso: diciembre-2009
Mensajes: 310
Antigüedad: 14 años, 4 meses
Puntos: 7
Respuesta: calculadora:Error en el post

Es que claro que se nota que es para clases o por diversión... Sigue investigando y preguntando aqui te ayudaremos....

Claro mientras no pidas que hagamos un proyecto desde cero.... jajajaja
  #6 (permalink)  
Antiguo 02/10/2010, 17:10
Avatar de ylellan  
Fecha de Ingreso: mayo-2010
Ubicación: en un lugar de Veracruz
Mensajes: 432
Antigüedad: 14 años
Puntos: 36
Respuesta: calculadora:Error en el post

corazones que en ese caso no era mejor usar un switch. Porque eso de tantos if me ha atontado. besos mis amores

Etiquetas: post
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 22:03.