New question

Question:

Date: 31-05-2019 15:49:33 (In Spanish)

Problemas al recoger los datos de un "select" con PHP[Resolved]

Hola amigos de la comunidad.
Mi problemas es el siguiente, anoche mientras me ponía a practicar PHP, se me ocurrió la idea de hacer un formulario con varios select y resulta que tengo un problema a la hora de calcular los datos, ya que no me lanza ningún error y no me esta corriendo el programa como debería.

Por favor alguien que me ayude, aquí le dejo el código que escribí anoche para practicar:
<?php

$mensaje = "";

if(isset($POST['name']) and isset($POST['rocoso']) and isset($POST['gaseoso']) and isset($POST['agua']) and isset($POST['si'])
and isset($POST['no']) and isset($POST['position']) and isset($POST['ye']) and isset($POST['not'])){

$name = $_POST['name'];
$rocoso = $_POST['rocoso'];
$gaseoso = $_POST['gaseoso'];
$agua = $_POST['agua'];
$si = $_POST['si'];
$no = $_POST['no'];
$position = $_POST['position'];
$ye = $_POST['ye'];
$not = $_POST['not'];

if($rocoso != $gaseoso && $agua == $agua && $si != $no && $position == $position && $yes != $not) {
  $mensaje = "El planeta $name, es un candidato con posible vida";
}else{
  $mensaje = "En el planeta $name, no es posible surgir vida";
}

}


?>

<!DOCTYPE html>
<html lang="es" dir="ltr">
  <head>
    <meta charset="utf-8">
    <title>Calcula si el planeta podria albergar vida</title>
  </head>
  <body>
    <header>
      <h1>SpaceU</h1>
    </header>

    <section>
      <form class="" action="index.php" method="post">

        <label for="name">Nombre:</label><br>
        <input type="text" name="name" placeholder="Nombre del planeta"><br><br>

        <label for="tipo">Que tipo de planeta es:</label><br>
        <input type="radio" name="rocoso">Rocoso
        <input type="radio" name="gaseoso">Gaseoso<br><br>

        <label for="agua">En que estado se encuentra el agua:</label><br>
        <select name="agua">
          <option value="solida">Solida</option>
          <option value="liquida">Liquida</option>
          <option value="gaseosa">Gaseosa</option>
          <option value="agua">En los 3 estados</option>
        </select><br><br>

        <label for="si">El planeta posee atmosfera ?</label><br>
        <input type="radio" name="si">Si
        <input type="radio" name="no">No<br><br>

        <label for="positio">En que posicion esta el planeta de su estrella:</label><br>
        <select name="position">
          <option value="lejos">Esta muy lejos</option>
          <option value="cerca">Esta muy cerca</option>
          <option value="position">Ni muy lejos, ni muy cerca</option>
        </select><br><br>

        <label for="campo">El planeta en concreto posee campo magnetico ?</label><br>
        <input type="radio" name="yes">Si
        <input type="radio" name="not">No<br><br>

        <button type="submit" name="button">Calcular</button>


      </form>

      <div>
        <p>Resultado</p>
        <div>
          <?php echo $mensaje; ?>
        </div>
      </div>

    </section>

  </body>
</html>
Tags: HTML - PHP Votes: 0 - Answers: 9 - Views: 18 Share on: Google Facebook Twitter LinkedIn Link
 

Answers:

  • Date: 02-06-2019 14:44:54 ¿Cómo debería correr el programa? ¿Qué es lo que ves y qué es lo que esperas ver?   Votes: 0 - Link answer
     
  • Date: 02-06-2019 17:43:48 BRAILYN
    Buenas noches

    Se me ocurre que podes probar con una consulta MySQL que contenga algo asi:

    MATCH (mensajes) AGAINST ('%name* rocoso* gaseoso* si* no* posicion* yes* not*%' IN BOOLEAN MODE

    En mi caso, cuando se completaba una encuesta, la respueta guardaba en una TABLA de la BD, entonces quienes leian las encuestas, debian ser advertidosrapidamente en aquellos casos en donde existia alguna insatisfaccion del cliente, pese a que la puntuacion que le daba a quien presto el servicio era buena.
    Obtenia dicha informacion de un campo que se llamaba OBSERVACIONES donde el encuestado podia poner lo que quisiera. Entonces entre las palabras que el escribia en sus oraciones, la consulta debia detectar la insatisfaccion del cliente.

    Ejemplo: Si decia mal (Podia haber escrito malo, mala, malisimo, etc) - Si decia Cel o Tel, queria decir que algo seguramente habia hecho con el celular o telefono, asi muchas cosas mas.

    Aqui te dejo algo para que ver de que se trata. Esta forma te va a hacer ahorrar mucho codigo

    Ver Aqui

    Ver aqui Manual MySQL

    Espero que te sirva

    Te envio un cordial saludo
      Votes: 1 - Link answer
     
  • Date: 03-06-2019 16:45:15 En realidad lo que yo busco es que la aplicación me lance un mensaje cuando un planeta es acto para la vida y cuando no, por eso hice un if en php, pero por algún error que desconozco, no me esta saliendo este mensaje.   Votes: 0 - Link answer
     
  • Date: 04-06-2019 07:20:20 BRAILYN
    Buenas tardes

    Eso se resuelve con un simple Swich

    Espero que te sirva

    Te envio un cordial saludo
      Votes: 0 - Link answer
     
  • Date: 04-06-2019 07:40:04 El problema debe ser que no se cumple la condición que pusiste en:

    if(isset($POST['name']) and isset($POST['rocoso']) and isset($POST['gaseoso']) and isset($POST['agua']) and isset($POST['si'])
    and isset($POST['no']) and isset($POST['position']) and isset($POST['ye']) and isset($POST['not'])){
    


    Es un poco difícil de leerla así... tal vez podrías intentar expresarla de alguna otra forma más simple...

    Fíjate que si no entra a este if, la variable $mensaje queda en ""... eso debe ser lo que ves.

    Ahora que veo mejor tu código noto que escribiste $POST en lugar de $_POST... corrige eso y vuelve a probar.

    Si sigue sin funcionar coloca al comienzo de tu script un:

    print_r( $_POST );
    


    Para ver qué le llega.

    Saludos
      Votes: 1 - Link answer
     
  • Date: 05-06-2019 15:50:08 Excelente Mauro, no me había percatado de ese error, pero lastimosamente aunque he corregido esa parte del código, el error aun continua.

    Gracias por su interés
      Votes: 0 - Link answer
     
  • Date: 06-06-2019 05:06:10 Ok... ¿hiciste el print_r de $_POST? ¿Qué te dio?   Votes: 0 - Link answer
     
  • Date: 06-06-2019 18:41:25 Por fin gracias a Dios logre solucionar este error, gracias Mauro Chojrin que me recordaste la el maravilloso
    print_r
    y pude solucionar este problema y darme cuenta de que mi código tenia varios problemas y logre solucionarlo todos y adquirir mas conocimientos.

    Aquí les comparto el código ya solucionado por si alguien tiene curiosidad de ver cuales eran la cantidad de error que tenia en mi código y no me estaba dando cuenta, no sin antes agradecerle a Mauro que ayudo mucho para solucionar mis errores en mi código PHP.

    <?php
    
    $mensaje = "";
    
    if(isset($_POST['name']) and isset($_POST['tipo']) and isset($_POST['agua']) and isset($_POST['si']) and isset($_POST['position']) and isset($_POST['campo'])){
    
      $name = $_POST['name'];
      $tipo = $_POST['tipo'];
      $agua = $_POST['agua'];
      $si = $_POST['si'];
      $position = $_POST['position'];
      $campo = $_POST['campo'];
    
      if($tipo == "rocoso" and $agua == "agua" && $si == "si" and $position == "position" && $campo == "campo") {
        $mensaje = "El planeta $name, es un candidato con posible vida";
      }else{
        $mensaje = "En el planeta $name, no es posible surgir vida";
      }
    
    }
    
    ?>
    
    <!DOCTYPE html>
    <html lang="es" dir="ltr">
      <head>
        <meta charset="utf-8">
        <title>Calcula si el planeta podria albergar vida</title>
      </head>
      <body>
        <header>
          <h1>SpaceU</h1>
        </header>
        <section>
          <form class="" action="index.php" method="post">
            <label for="name">Nombre:</label><br>
            <input type="text" name="name" placeholder="Nombre del planeta"><br><br>
    
            <label for="tipo">Que tipo de planeta es:</label><br>
            <input type="radio" name="tipo" value="rocoso">Rocoso
            <input type="radio" name="tipo" value="gaseoso">Gaseoso<br><br>
    
            <label for="agua">En que estado se encuentra el agua:</label><br>
            <select name="agua">
              <option value="solida">Solida</option>
              <option value="liquida">Liquida</option>
              <option value="gaseosa">Gaseosa</option>
              <option value="agua">En los 3 estados</option>
            </select><br><br>
    
            <label for="si">El planeta posee atmosfera ?</label><br>
            <input type="radio" name="si" value="si">Si
            <input type="radio" name="si" value="no">No<br><br>
    
            <label for="position">En que posicion esta el planeta de su estrella:</label><br>
            <select name="position">
              <option value="lejos">Esta muy lejos</option>
              <option value="cerca">Esta muy cerca</option>
              <option value="position">Ni muy lejos, ni muy cerca</option>
            </select><br><br>
    
            <label for="campo">El planeta en concreto posee campo magnetico ?</label><br>
            <input type="radio" name="campo" value="campo">Si
            <input type="radio" name="campo" value="not">No<br><br>
    
            <button type="submit" name="button" value="button">Calcular</button>
          </form>
          <div>
            <p>Resultado</p>
            <div>
              <?php echo $mensaje; ?>
            </div>
          </div>
        </section>
      </body>
    </html>
      Votes: 0 - Link answer
     
  • Date: 07-06-2019 05:16:00 Excelente amigo! Me alegra haber podido ayudar :)

    Aprovecho para recomendarte en realidad no usar print_r (ni var_dump) si no un debugger.

    Te dejo este video donde puedes ver más detalles de a qué me refiero:




    Y si te sirve, te invito a unirte a mi programa "PHP: aprender mediante ejemplos" donde analizo una serie de 40 casos reales junto con sus soluciones y explicación detallada: https://academy.leewayweb.com/productos/php-aprender-mediante-ejemplos/
      Votes: 1 - Link answer
     
To actively participate in the community first must authenticate, enter the system.Sign In
 
frjcbbae garagebible.com