PHP - no entiendo donde esta el fallo

 
Vista:

no entiendo donde esta el fallo

Publicado por francisco javier (2 intervenciones) el 24/04/2020 14:07:58
he echo una simple calculadora con dos archivos uno es el index.php que es donde tengo el formulario index y el otro que es calculadora.php calculadora que es donde ejecuto la programacion php, todo me va genial . pero quisiera dejar en el archivo calculadora.php solo la programación de la function, así que saco el único if que tengo y me lo llevo al index. index_cambiado y ahí es donde me viene los problemas ya que al ejecutar el programa y mandar los valores me sale todo en blanco. gracias de antemano y perdonar ya que creo que es muy tonta la pregunta pero me estoy volviendo loco
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Julio
Val: 2.007
Plata
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

no entiendo donde esta el fallo

Publicado por Julio (830 intervenciones) el 24/04/2020 15:21:59
Hola.

Estaba pensando en otra cosa y te había rehecho un poco el código:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
<?php
include_once('calculadora.php');
 
if (isset($_POST['button'])) {
	calcular($_POST['operacion'], $_POST['num1'], $_POST['num2']);
}
?>
 
<form name="form1" method="post" action="prueba.php">
	<p>Número 1: <input type="text" name="num1" id="num1"></p>
	<p>Número 2: <input type="text" name="num2" id="num2"></p>
	<select name="operacion" id="operacion">
		<option value="suma">Suma</option>
		<option value="resta">Resta</option>
		<option value="multiplicar">Multiplicar</option>
		<option value="dividir">Dividir</option>
		<option value="modulo">Módulo</option>
		<option value="incremento">Incremento</option>
		<option value="decremento">Decremento</option>
	</select>
	<p><input type="submit" name="button" value="Calcular" onclick="prueba">
</form>

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
<?php
function calcular($calculo, $numero1, $numero2) {
	switch ($calculo) {
		case 'suma':
			echo '<p class="resultado">El resultado es: ' . ($numero1 + $numero2) . '</p>';
			break;
 
		case 'resta':
			echo '<p class="resultado">El resultado es: ' . ($numero1 - $numero2) . '</p>';
			break;
 
		case 'multiplicar':
			echo '<p class="resultado">El resultado es: ' . ($numero1 * $numero2) . '</p>';
			break;
 
		case 'dividir':
			echo '<p class="resultado">El resultado es: ' . ($numero1 / $numero2) . '</p>';
			break;
 
		case 'modulo':
			echo '<p class="resultado">El resultado es: ' . ($numero1 % $numero2) . '</p>';
			break;
 
		case 'incremento':
			echo '<p class="resultado">El resultado es: ' . ($numero1 + 1) . '</p>';
			break;
 
		case 'decremento':
			echo '<p class="resultado">El resultado es: ' . ($numero1 - 1) . '</p>';
			break;
	}
}
?>

Entre otras cosas porque no veía tan necesario el uso de variables globales y pensaba que quizá no te las estaba cogiendo bien y podía darte error. Luego, mientras iba haciendo, pensaba que quizá el include te estaba incluyendo muchas veces ese archivo y eso te iría mal, aunque creo que no tiene por qué (fíjate que yo he puesto un include_once, por si acaso).

Total, que al final te lo he rehecho sin variables globales, fíjate que también he puesto un switch en lugar de tantos if y algunas pequeñas modificaciones más que te he hecho. Al final, mientras hacía, creo que había encontrado el fallo. Resulta que como has cambiado el if (isset($_POST['button'])) desde calculadora.php a index.php, en el formulario no lo has cambiado, y ese formulario sigue lanzando calculadora.php, que ahora sólo tiene la función. De ahí que, en ese archivo, te aparezca todo en blanco. Debías haber puesto en el action del form el propio index.php. Creo que ahí tienes el error.

De todas formas, si te sirven algunas de mis modificaciones, adelante.

P.D.: Ten cuidado en comprobar si num1 y num2 no están vacíos, o la división te podría dar error por ejemplo.
P.D.2: No sé qué operación hacen incremento y decremento. He puesto que lo hagan sobre el num1, pero no sé si es lo que quieres.

-----------------------------
Aprende la programación desde una perspectiva básica y simplista en Programación Básica
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
2
Comentar

no entiendo donde esta el fallo

Publicado por francisco javier (2 intervenciones) el 25/04/2020 20:36:55
Madre mía!!!! muchas gracias por solventarme este fallo de novato y perdón por las molestias.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar