Foros aprenderaprogramar.com
Aprender a programar => C, C++, C#, Java, Visual Basic, HTML, PHP, CSS, Javascript, Ajax, Joomla, MySql y más => Mensaje iniciado por: paramonso en 20 de Julio 2017, 10:55
-
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.
<!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 : <input type="text" name="nombre" /><br />
Dirección: <input type="text" name="direccion" /><br />
Email : <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
-
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
-
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. :-[
-
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
-
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.
<!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 : <input type="text" name="nombre" /></p><br/>
<p>Dirección: <input type="text" name="direccion" /></p><br/>
<p>Email : <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
-
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:
<SELECT name="opcEnvio">
<OPTION name="opcNormal">Normal</OPTION>
<OPTION name="opcAvion">Avion</OPTION>
<OPTION name="opcUrgente">Urgente</OPTION>
</SELECT>
Y debería quedar así:
<select name="opcEnvio">
<option>Normal</option>
<option>Avion</option>
<option>Urgente</option>
</select>
Saludos. ;D
-
Muchas gracias por la observaciòn. ::)
ni calvo ni siete pelucas ( o nada o me paso ).
Buf. Sera el Calor ;D
Gracias