Buenos dias a todos, en el dia de hoy vengo para que me puedan ayudar con una duda que tengo.
Resulta que tengo mi (index.php) donde tengo el siguiente codigo
<form method="post" action="suma.php">
<label>NUMERO 1</label><br>
<input type="text" name="Suma1" placeholder="Digite el numero"><br>
<label>NUMERO 2</label><br>
<input type="text" name="Suma2" placeholder="Digite el numero"><br><br>
<button>SUMAR</button><br><br>
<input type="text" name="Resultado">
</form>
y en otra pagina tengo mi codigo PHP (suma.php)
<?php
/* CALCULADORA */
$a = $_POST['Suma1'];
$b = $_POST['Suma2'];
$resultado = $a + $b;
echo "La suma de " .$a. " + " .$b. " es = " .$resultado;
/* FIN */
?>
Hasta donde se ve es una suma normal, donde yo digito unos numeros en mi formulario html y esos datos se guardan en las variables a y b que hacen la suma desde php y me muestran en otra pagina el resultado.
Ahora lo que yo estoy buscando es poder mostrar dicho resultado nuevamente en el input "Resultado" de mi formulario, osea directamente en mi pagina y no en otra, algo parecido a lo que se maneja con javascript. Gracias, espero me puedan ayudar.
Saludos,
- Si quieres evitar javascript incluyendo Ajax, se me ocurre algo así, la idea es comprobar si existen los parámetros POST e inicializar las variables requeridas dependiendo a esto y usar estas variables como contenido VALUE de los TEXT del formulario:
<?php
if ( isset($_POST['Suma1']) && isset($_POST['Suma2']) ) {
$a = $_POST['Suma1'];
$b = $_POST['Suma2'];
$resultado = $a + $b;
} else {
$a = "";
$b = "";
$resultado = "";
}
?>
<form method="post" action="">
<label>NUMERO 1</label><br>
<input type="text" name="Suma1" value="<?=$a?>" placeholder="Digite el numero"><br>
<label>NUMERO 2</label><br>
<input type="text" name="Suma2" value="<?=$b?>" placeholder="Digite el numero"><br><br>
<button>SUMAR</button><br><br>
<input type="text" name="Resultado" value="<?=$resultado?>" >
</form>
Vale, segun lo que entiendo del codigo, dice que si hay contenido (isset) en la variable (suma1 y suma2), definamelo en las variables php (a y b)?, y obviamente se realiza la operacion. En caso contrario no puede haber nada en las variables a y b, algo asi es lo que entiendo con el codigo.
Algo que no entiendo es la funcion que esta en el value del formulario (<?=$a?>), osea hay esta como preguntandole si hay contenido en la variable a? o algo asi?
Gracias.
De todas maneras me sirvio muy bien, si no que no entiendo el codigo del value. :D
Otra pregunta como haria para que el resultado se mostrara centrado asi como los numeros que uno escribe, ensayo con css y no da, gracias.
Citar
Algo que no entiendo es la funcion que esta en el value del formulario (<?=$a?>), osea hay esta como preguntandole si hay contenido en la variable a? o algo asi?
Eso es un shorthand de PHP que te permite imprimir la variable de una forma algo más corta. Equivale a lo mismo que hacer esto:
<?php echo $a; ?>
De todos modos, ya que estamos en un foro de seguridad, mencionemos que imprimir directamente algo que te da el usuario es peligroso pues puede llevar a la ejecución de XSS. Siempre que el usuario te pase algo, tratalo como deberias tratarlo (si esperas un numero, tratalo como tal) e imprimirlo de forma escapada.
En este caso, dado que esperas números puedes usar (float) o (int) para forzar el tipo.
Y ya que estamos, recordar que
isset admite un número indeterminado de argumentos.
<?php
$a = '';
$b = '';
$resultado = '';
if (isset($_POST['Suma1'], $_POST['Suma2'])) {
$a = (float) $_POST['Suma1'];
$b = (float) $_POST['Suma2'];
$resultado = $a + $b;
}
?>
https://www.php.net/manual/es/function.isset.php
https://www.php.net/manual/es/language.types.type-juggling.php
https://www.php.net/manual/es/function.htmlentities.php
Saludos
Listo, ya entendi el codigo del value, y ya verifique el codigo que me distes y tambien me funciono, en ese caso, mi tema queda resuelto muchas gracias por ayudarme!