[Resuelto] Problema con PHP y HTML

Iniciado por Victor26, 21 Septiembre 2019, 19:17 PM

0 Miembros y 3 Visitantes están viendo este tema.

Victor26

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.

EdePC

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:

Código (php) [Seleccionar]
<?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>

Victor26

#2
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.

#!drvy

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:

Código (php) [Seleccionar]
<?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.


Código (php) [Seleccionar]
<?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

Victor26

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!