Avatar Image
Machacateclados
Machacateclados

Hola, estoy empezando con PHP y en el siguienta web no se me cumple la condicion del if,
Es una web con dos paginas en una dices dos numeros y la operacion y en la otra sale el resultado segun la opcion elegida.
Lo que passa es que me sale todos los resultados de los "echos" seguidos,
yo quiero que me salga el que eligo mediante el formulario.

Gracias

>>>>>>>>>>>>>>>Formulario

<html>
<body>
<form action="resultat.php" method="GET" enctype="text/html" name="formulari">
Introdueix el primer operand<br><input type="text" maxlenght="4" size"5" name="operand1"><br>
Introdueix el segon operand<br><input type="text" maxlenght="4" size"5" name="operand2"><br>

operacio que vols fer<br><select name="operacio">
<option selected>suma
<option>resta
<option>multiplicacio
<option>divisio
</select>
<br><br>
<input type="submit" value"calcular">
</form>
</body>
</html>


>>>>>>>>>>>>>>>Muestra el resultao

<html>
<body>
<?php

if($_GET['operacio']=="suma")
{
$valor1=$_GET['operand1'];
$valor2=$_GET['operand2'];
$resultat=$valor1+$valor2;
echo "el resultat de la suma $valor1+$valor2=$resultat";
}

if($_GET['operacio']=="resta")
{
$valor1=$_GET['operand1'];
$valor2=$_GET['operand2'];
$resultat=$valor1-$valor2;
echo "el resultat de la resta $valor1-$valor2=$resultat";
}

if($_GET['operacio']=="multiplicacio") 
{
$valor1=$_GET['operand1'];
$valor2=$_GET['operand2'];
$resultat=$valor1*$valor2;
echo "el resultat de la multiplicacio $valor1*$valor2=$resultat";
}

if($_GET['operacio']=="divisio")
{
$valor1=$_GET['operand1'];
$valor2=$_GET['operand2'];
$resultat=$valor1/$valor2;
echo "el resultat de la divisio $valor1/$valor2=$resultat";
}

?>
</body>
</html>

Avatar Image
Machacateclados
Machacateclados

Hola. hize la segunda parte con un switch: pero no funciona, siempre me sale el resultat de la suma x+y=z...

Arriba he puesto un:$operacio= $_GET['operacio']; haze falta?

el codigo es

<html>
<body>
<?php

$operacio= $_GET['operacio'];

switch($operacio) {

case "suma":
$valor1=$_GET['operand1'];
$valor2=$_GET['operand2'];
$resultat=$valor1+$valor2;
echo "El resultat de la suma $valor1 + $valor2 = $resultat";
break;

case "resta":
$valor1=$_GET['operand1'];
$valor2=$_GET['operand2'];
$resultat=$valor1-$valor2;
echo "El resultat de la resta $valor1 - $valor2 = $resultat";
break;

case "multiplicacio":
$valor1=$_GET['operand1'];
$valor2=$_GET['operand2'];
$resultat=$valor1*$valor2;
echo "El resultat de la multiplicacio $valor1 * $valor2 = $resultat";
break;

case "divisio":
$valor1=$_GET['operand1'];
$valor2=$_GET['operand2'];
$resultat=$valor1/$valor2;
echo "El resultat de la divisio $valor1 / $valor2 = $resultat";
break;

}

?>
</body>
</html>

Avatar Image
Usuario habitual
Usuario habitual

Te comento sólo el primer programa.

Tienes dos errores, el primero en el código html. Donde pone

<select name"operacio">

debe poner

<select name="operacio">

El segundo error está cuando comparas el valor del select con un valor literal. Donde pone

if($_GET['operacio']=="$suma")

en realidad debe poner

if($_GET['operacio']=="suma")

ya que estás comparando con una constante ("suma") y no con una variable ($suma) Es igual en todos los ifs.

Saludos.

Avatar Image
Machacateclados
Machacateclados

ok, da igual si lo haces con ifs o con switchs?

Avatar Image
Usuario habitual
Usuario habitual

En principio sí, pero en los case también tienes que comparar con una cadena (case "suma":) y no con una variable (case $suma:)

Saludos.

ATENCIÓN: Este tema no tiene actividad desde hace más de 6 MESES,
te recomendamos abrir un nuevo tema en lugar de responder al actual
Opciones:
Ir al subforo:
Permisos:
TU NO PUEDES Escribir nuevos temas
TU NO PUEDES Responder a los temas
TU NO PUEDES Editar tus propios mensajes
TU NO PUEDES Borrar tus propios mensajes
Temas similares
No se han encontrado temas similares