Foros del Web » Programando para Internet » PHP »

[SOLUCIONADO] Problema al pasar datos de formulario

Estas en el tema de Problema al pasar datos de formulario en el foro de PHP en Foros del Web. Buenas tardes a todos: Me solicitan crear dos constantes con el nombre de 2 capitales del mundo respectivamente. En un formulario se me solicita que ...
  #1 (permalink)  
Antiguo 10/02/2013, 17:26
 
Fecha de Ingreso: febrero-2007
Mensajes: 43
Antigüedad: 17 años, 1 mes
Puntos: 0
Pregunta Problema al pasar datos de formulario

Buenas tardes a todos:

Me solicitan crear dos constantes con el nombre de 2 capitales del mundo respectivamente. En un formulario se me solicita que el usuario registre mediante "radio-button" el pais al cual pertenece. Al final el resultado me debe aparecer lo siguiente: hola [] eres del pais [] cuya capital es []. he realizado lo siguiente pero me arroja errores y no entiendo por que:

Código HTML:
Ver original
  1. <form name="form" method="post" action="tareapuntotres.php">
  2.  
  3.  <h1>Ingreso de datos</h1>
  4.  Nombre completo <input type="text" name="nom"/>
  5.  <br/>
  6.  Pais de procedencia:
  7.  <br/>
  8.  Alemania<input type="radio" name="pais" value="Alemania" checked="checked" />
  9.  Francia<input type="radio" name="pais" value="Francia"/>
  10.  <hr/>
  11.  
  12. <input type="button" value="Enviar" title="enviar" onclick="document.form.submit();"/>
  13. </form>

y en el archivo que recibe los datos lo siguiente:


Código PHP:
Ver original
  1. <?php
  2.    
  3.    define("alemania", "berlin");
  4.    define("francia", "paris");
  5.      
  6.   if (isset($_POST["pais"])==alemania){
  7.          
  8.      echo "hola ".$_POST["nom"]." tu eres del pais".$_POST["pais"]." cuya capital es ".alemania;
  9.   }
  10.  
  11.   if (isset($_POST["pais"])==Francia){
  12.          
  13.      echo "hola ".$_POST["nom"]." tu eres del pais".$_POST["pais"]." cuya capital es ".paris;
  14.   }
  15.    
  16.  ?>

Agradezco mucho la ayuda.
  #2 (permalink)  
Antiguo 10/02/2013, 17:56
 
Fecha de Ingreso: julio-2008
Ubicación: Córdoba, Argentina
Mensajes: 266
Antigüedad: 15 años, 9 meses
Puntos: 26
Respuesta: Problema al pasar datos de formulario

Estás usando define() como si fuese un array(), cuando en realidad el primer parámetro es el nombre de la constante (que usualmente se escribe en mayúscula para diferenciar fácilmente de una variable) y el segundo es el valor que toma la misma. Te recomiendo que uses comillas simples si no necesitas que PHP muestre el valor de una variable dentro de un string. Tampoco puedes preguntar por isset() y por == en el mismo if, debes hacer dos preguntas separadas. Al código aún le falta validar que el nombre no esté vacío. Puedes obviar las constantes de las capitales y escribir su respectivo nombre dentro de cada if, pero depende de qué te hayan pedido exactamente.
Código PHP:
<?php
define
('PAIS1''Alemania');
define('PAIS2''Francia');
define('CAPITAL1''Berlín');
define('CAPITAL2''París');

if (isset(
$_POST['pais'])) {
    if (
$_POST['pais'] == PAIS1) {
        echo 
'Hola '.$_POST['nom'].', tú eres del pais '.$_POST['pais'].' cuya capital es '.CAPITAL1;
    } elseif (
$_POST['pais'] == PAIS2) {
        echo 
'Hola '.$_POST['nom'].', tú eres del pais '.$_POST['pais'].' cuya capital es '.CAPITAL2;
    }
}
También puedes reemplazar esto:
Código:
<input type="button" value="Enviar" title="enviar" onclick="document.form.submit();"/>
Por:
Código:
<input type="submit" name="enviar" value="Enviar" />
Para no depender de JavaScript si no es necesario.

http://php.net/manual/es/function.define.php

Última edición por RabidFish; 10/02/2013 a las 18:08
  #3 (permalink)  
Antiguo 10/02/2013, 18:48
 
Fecha de Ingreso: febrero-2007
Mensajes: 43
Antigüedad: 17 años, 1 mes
Puntos: 0
De acuerdo Respuesta: Problema al pasar datos de formulario

Excelente, me quedó claro ya lo solucioné:

Código PHP:
Ver original
  1. <?php
  2.      
  3.      define ("ALEMANIA","berlin");
  4.      define ("FRANCIA","paris");
  5.   if (isset($_POST["pais"])){
  6.       if($_POST["pais"]=="Alemania"){
  7.          
  8.      echo "hola ".$_POST["nom"]." tu eres del pais".$_POST["pais"]." cuya capital es ".ALEMANIA;
  9.       }
  10.  
  11.   }
  12.  
  13.   if (isset($_POST["pais"])){
  14.       if($_POST["pais"]=="Francia"){
  15.          
  16.      echo "hola ".$_POST["nom"]." tu eres del pais".$_POST["pais"]." cuya capital es ".FRANCIA;
  17.  
  18.       }
  19.   }
  20.    
  21.  ?>

Gracias por tus consejos.

Etiquetas: formulario
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 09:16.