Autor Tema: Enviar y recibir datos de formulario HTML con PHP. Métodos GET y POST CU00832B  (Leído 4965 veces)

paramonso

  • Intermedio
  • ***
  • Mensajes: 241
  • El ignorante afirma, el sabio duda y reflexiona.
    • Ver Perfil
Hola. Ejercicio CU00832B del taller de programación web con PHP y Notepad++ como editor.

Crea un archivo HTML con un formulario que contenga  un checkbox (¿Desea recibir factura?), dos input radio (Varón/Mujer), tres input tipo texto (Nombre, Dirección, Email) y un combobox para forma de envío (normal, por avión o urgente), junto con un botón de envío. Establece como url de envío la dirección recibe.php y método de envío get y comprueba que se recuperan los datos enviados correctamente a través de la url.

Código: [Seleccionar]
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">

<head>
<title>PHP Desde cero aprenderaprogramar.com</title>
<meta http-equiv="content-type" content="text/html;charset=utf-8" />
<meta name="generator" content="Geany 1.27" />
<style type="text/css">
      body{  background-color:yellow; color:blue;}
      h1, h2{text-align:center; color:blue;}
      .Formu{
border:double 6px red;
text-align:center;
background-color:orange;
height:300px;
width:480px;
padding:10px;
margin:20px auto;
}
#FacSex,#Datos{
        text-align:left;
border:solid 2px DarkOrange;
padding:5px;
margin:2px;
float:left;
}
#FacSex{
   width:180px;
   
   }
#Datos{
   width:240px;
   
}
p,h3{margin:0;padding:0;}

#FacSex,#Datos,#Envio{
background-color:Khaki;
          border:solid 2px DarkOrange;
  }
#Envio{
width:200px;
    padding:5px;
margin:2px auto;
text-align:center;
clear:both;
}

   
</style>
</head>


<body >
<h1>Ejercicio PHP 32(CU00832B)</h1>
<div class="Formu">
<h2>Datos envio Pedido</h2>
    <div id="FacSex">
<form method="get"  action="recibe.php" target="_blank">
     <p>Usted es :</p>
<input name="Sexo" type="radio" checked="checked" value="Varon" />Hombre o
<input name="Sexo" type="radio" value="Mujer" />Mujer ?
<input name="FacYN" type="checkbox" />¿ Desea recibir factura ?
</div>
<div id="Datos">
 
Nombre&nbsp;&nbsp;&nbsp;: <input type="text" name="nombre" /><br />
Dirección: <input type="text" name="direccion" /><br />
Email&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;: <input type="text" name="correo" /><br />
<br/>
 </div>
<div id="Envio" >
<h3 >Opcion de envio</h3>
<SELECT>
  <OPTION>Normal</OPTION>
  <OPTION>Avion</OPTION>
  <OPTION>Urgente</OPTION>
 </SELECT>
 </div>
 <br/><br/><br/>
<input type="submit" value="Enviar">
<input type="reset" value="Limpiar">
</form>

</div>
</body>

</html>

En este párrafo del ejercicio en la primera linea hay un pequeño error de redacción:

El original pone:
 Crea un archivo HTML que contenga un formulario que contenga un checkbox

Se repite la palabra contenga.

Creo que debería ser:
 Crea un archivo HTML con un formulario que contenga un checkbox Etc.....
o
Crea un archivo HTML que contenga un formulario con un checkbox ETC.



Adiós. :-X
« Última modificación: 12 de Agosto 2017, 11:52 por Ogramar »

pedro,,

  • Moderador Global
  • Experto
  • *******
  • APR2.COM
  • Mensajes: 1292
    • Ver Perfil
Re:Entrega Ejercicio PHP 32(CU00832B)
« Respuesta #1 en: 22 de Julio 2017, 17:38 »
Buenas paramonso.

Deberías revisar el código puesto que el método de envío, no aparece en la url generada al mandar el formulario.

Saludos. ;D

paramonso

  • Intermedio
  • ***
  • Mensajes: 241
  • El ignorante afirma, el sabio duda y reflexiona.
    • Ver Perfil
Hola.

Estoy dandole vueltas y no encuentro la forma de ver el metodo de envio en la url.
Lo mas que puedo ver es el nombre del archivo y las variables con su con tenido o vacías.

recibe.php?Sexo=Mujer&FacYN=on&nombre=1&direccion=2&correo=3
recibe.php?Sexo=Varon&nombre=&direccion=&correo=.

Una manita porfi.  :-[

pedro,,

  • Moderador Global
  • Experto
  • *******
  • APR2.COM
  • Mensajes: 1292
    • Ver Perfil
Buenas.

Todo lo que envía un formulario debe de contener el atributo "name", y la lista no tiene este atributo establecido, de ahí que no aparezca en la url.

Saludos. ;D

paramonso

  • Intermedio
  • ***
  • Mensajes: 241
  • El ignorante afirma, el sabio duda y reflexiona.
    • Ver Perfil
Hola.
Ya esta.

No entendía lo del metodo de envio y yo buscaba que saliera en la url el método POST o GET y no había manera.

Ahora me he dado cuenta que es la opción de envio del combobox.

(Era "mudico" y a los 40 dijo gua).

Envio el codigo con los errores corregidos.
Código: [Seleccionar]

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">

<head><title>PHP Desde cero aprenderaprogramar.com</title>
<meta http-equiv="content-type" content="text/html;charset=utf-8" />
<meta name="generator" content="Geany 1.27" />
<style type="text/css">
      body{  background-color:yellow; color:blue;}
      h1, h2{text-align:center; color:blue;}
      .Formu{
border:double 6px red;
text-align:center;
background-color:orange;
height:300px;
width:480px;
padding:10px;
margin:20px auto;
}
#FacSex,#Datos{
        text-align:left;
border:solid 2px DarkOrange;
padding:5px;
margin:2px;
float:left;
}
#FacSex{
   width:180px;
   
   }
#Datos{
   width:240px;
   
}
p,h3{margin:0;padding:0;}

#FacSex,#Datos,#Envio{
background-color:Khaki;
          border:solid 2px DarkOrange;
  }
#Envio{
width:200px;
    padding:5px;
margin:2px auto;
text-align:center;
clear:both;
}
input{margin:0 ; padding:0;}
   
</style>
</head>


<body >
<h1>Ejercicio PHP 32(CU00832B)</h1>
<div class="Formu" name="Formu">
<h2>Datos envio Pedido</h2>

    <div id="FacSex" name="FacSex">
<form  name="Formulario" action="recibe.php"  method="get"  onclick="this.target='_blank' ">
<p>Usted es Hombre:<input name="Sexo" type="radio" checked="checked" value="Varon"/></p>
<p> O Mujer ?<input name="Sexo" type="radio" value="Mujer"/></p>
<p>¿ Desea recibir factura ?<input name="FacYN" type="checkbox"/></p>
</div>

<div id="Datos" name="Datos">
<p>Nombre&nbsp;&nbsp;&nbsp;: <input type="text" name="nombre" /></p><br/>
<p>Dirección: <input type="text" name="direccion" /></p><br/>
<p>Email&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;: <input type="text" name="correo" /></p><br/>
<br/>
</div>

<div id="Envio"  name="Envio">
<h3 >Opcion de envio</h3>
<SELECT name="opcEnvio">
<OPTION name="opcNormal">Normal</OPTION>
<OPTION name="opcAvion">Avion</OPTION>
<OPTION name="opcUrgente">Urgente</OPTION>
</SELECT>
</div>

<br/><br/><br/>
<input type="submit" value="Enviar"/>
<input type="reset" value="Limpiar"/>
</form>

</div>
</body>

</html>

Gracias. ;D

pedro,,

  • Moderador Global
  • Experto
  • *******
  • APR2.COM
  • Mensajes: 1292
    • Ver Perfil
Hola paramonso.

Ahora funciona, aunque no estás usando de forma correcta el select, de la forma que lo estás usando se pueden enviar tres "name" distintos, con lo que en el supuesto archivo recibe.php tendrías que intentar recoger el valor de cada uno de ellos y averiguar cual de ellos se ha enviado, y lo ideal es que el atributo "name" se los asignes a la etiqueta select, de esta forma solo tendrás que preguntar por el nombre de esa propiedad y no por tres, aunque esto lo verás más clara más adelante en el curso.

En tú código tienes lo siguiente:
Código: [Seleccionar]
<SELECT name="opcEnvio">
<OPTION name="opcNormal">Normal</OPTION>
<OPTION name="opcAvion">Avion</OPTION>
<OPTION name="opcUrgente">Urgente</OPTION>
</SELECT>

Y debería quedar así:
Código: [Seleccionar]
<select name="opcEnvio">
<option>Normal</option>
<option>Avion</option>
<option>Urgente</option>
</select>

Saludos. ;D

paramonso

  • Intermedio
  • ***
  • Mensajes: 241
  • El ignorante afirma, el sabio duda y reflexiona.
    • Ver Perfil
Muchas gracias por la observaciòn. ::)
ni calvo ni siete pelucas ( o nada o me paso ).

Buf. Sera el Calor ;D

Gracias

 

Sobre la educación, sólo puedo decir que es el tema más importante en el que nosotros, como pueblo, debemos involucrarnos.

Abraham Lincoln (1808-1865) Presidente estadounidense.

aprenderaprogramar.com: Desde 2006 comprometidos con la didáctica y divulgación de la programación

Preguntas y respuestas

¿Cómo establecer o cambiar la imagen asociada (avatar) de usuario?
  1. Inicia sesión con tu nombre de usuario y contraseña.
  2. Pulsa en perfil --> perfil del foro
  3. Elige la imagen personalizada que quieras usar. Puedes escogerla de una galería de imágenes o subirla desde tu ordenador.
  4. En la parte final de la página pulsa el botón "cambiar perfil".