Hoy mismo, viriathus me a ayudado a instalar en el portátil el appserv. Y me ha dado una valiosa introducción teórico/practica a php.
Así que, ya no hay excusas a estudiar php.
Hoy mismo, viriathus me a ayudado a instalar en el portátil el appserv. Y me ha dado una valiosa introducción teórico/practica a php.
Así que, ya no hay excusas a estudiar php.
Última edición por Pit [reloaded]; 30-07-2011 a las 22:35
Ahora que soy inmensamente rico, me ha dado por aprender Blender
Vaya. Modie, kashir,viriathus, son las 4:54 de la mañana y me he atascado con el javascript. Y dentro de unas horas me tengo que poner a modelar un edificio de oficinas que entrego a final de mes.
Mirad si podéis guiarme para resolver esta programación:
Enunciado:
modificar el fichero formulario.html con el formulario mostrado en la figura, donde se.
Pide el nombre, edad y dirección de correo eléctrónico del usuario.
Al pulsar el botón validar datos se llama a la función validar() que el alumno debe.
Crear en este ejercicio.
Esta función verifica la corrección de los datos introducidos y.
Muestra mensajes en forma de alertas como los de la figura siguiente, pero únicamente.
Uno con el primer error encontrado. Si el formulario esta rellenado correctamente, debe.
mostrar el mensaje formulario correcto..
La función validar() debe realizar, al menos, las siguientes comprobaciones:
o la longitud del nombre es mayor de cuatro caracteres.
o el nombre no contiene números.
o la edad sólo contiene números.
o el valor de la edad esta comprendido entre los valores 18 y 99.
o la dirección de correo incluye una arroba y su longitud es superior a cinco caracteres.
De momento la primera validacción me ha salido.
Pero intento hacer las otras con expresiones regulares, pero empiezo por la de la edad, y no sé qué pasa que no acaba de funcionar bien, lo de las expresiones regulares, algo hago mal.
De momento esl código esta así, dadme alkgún consejo o guía para seguir.
Adjunto ekl archivo completo por si acaso.
Y mañana a las 09:00 a modelar, vaya vicio esto.
.doctype html public -//w3c//dtd xhtml 1.0 transitional//en http://www.w3.org/tr/xhtml1/dtd/xhtml1-transiciónal, dtd>
html xmlns=http://www.w3.org/1999/xhtml>
head>
meta http-equiv=content-type content=text/html, charset=ISO-8859-1 />
title>validar formulario</title>.
script>.
Var valornombre = document, getelementbyid(nombre), value;
Var valoredad = document, getelementbyid(edad), value;
Var valorcorreo = document, getelementbyid(correo), value;
Function validar() {
//comprueba que longitud del texto del campo nombre es mayor de cuatro caracteres.
If (document, getelementbyid(nombre), value, length < 5) {
//si no se cumple la condición.
Alert(escriba por lo menos 5 caracteres en el campo nombre),
Return false;
}
//comprueba que el campo de texto edad se rellena con números.
Else if (./([0-9])*$/.test(valoredad)) {
Alert(escriba valores numéricos en el campo edad),
Return false;
}
Else if (./\w+([\.-]? \w+)*@\w+([\.-]? \w+)*(\.\w{2,3})+$/.test(valorcorreo)){
Alert(la dirección de email es incorrecta.),
Return (false),
}.
// si el script ha llegado a este punto, todas las condiciones.
// se han cumplido, por lo que se devuelve el valor true.
Return true;
}.
/script>.
/head>.
body>
h2><font color=#054b>ejemplo de formulario</font></h2>
p>introduzca sus datos personales: </p>
form name=registro>
table border=0 width=350 cellspacing=3>
tr>
td width=50% bgcolor=#f3d6 align=right>nombre</td>
td width=50% bgcolor=#fdc88><input id=nombre name=nombre type=text value= size=20 /></td>
/tr>
tr>
td width=50% bgcolor=#f3d6 align=right>edad</td>
td width=50% bgcolor=#fdc88>
input type=text id=edad name=edad size=2 maxlength=2></td>
/tr>
tr>
td width=50% bgcolor=#f3d6 align=right>dirección de correo</td>
td width=50% bgcolor=#fdc88>
input type=text name=correo size=20></td>
/tr>
/table>
p><input type=button value=validar datos name=enviar onclick=validar()></p>
/form>
/body>
/html>.
-- IMÁGENES ADJUNTAS --
![]()
Última edición por Pit [reloaded]; 05-08-2011 a las 04:14
Ahora que soy inmensamente rico, me ha dado por aprender Blender
Vaya, Modie, kashir, viriathus creo que el código correcto es:
<script language=javascript1.2>.
function validar() { if.
//comprueba si hay 5 caracteres o más en el campo nombre
(document, getelementbyid(nombre), value, length < 5) {
Alert(escriba al menos 5 caracteres en el campo nombre),
Return false.
} else if.
//comprueba que sólo hay letras en el campo nombre
(./([a-za-z\s])*$/.test(document, getelementbyid(nombre), value)) {
Alert(el campo nombre sólo puede contener letras),
Return false.
} else if.
//comprueba que sólo hay números en el campo edad
(./([0-9])*$/.test(document, getelementbyid(edad), value)) {
Alert(el campo edad sólo puede contener números),
Return false.
} else if.
//comprueba que el rango de edad esta entre 18 y 99
(document, getelementbyid(edad), value <1{
Alert(el rango del campo edad tiene que estar comprendido entre 18 y 99),
Return false.
} else if.
//comprueba que el formato del correo es correcto
(./(.+\@.+\.+)$/.test(document, getelementbyid(correo), value)) {
Alert(escriba una dirección de correo valida en el campo dirección de correo),
Return false.
}
//mensaje final
Alert(formulario correcto),
Return true;
}.
</script>.
Última edición por Pit [reloaded]; 05-08-2011 a las 10:02
Ahora que soy inmensamente rico, me ha dado por aprender Blender
Una duda. En la validacción:
} else if.
//comprueba que el rango de edad esta entre 18 y 99
(document, getelementbyid(edad), value <1{
Alert(el rango del campo edad tiene que estar comprendido entre 18 y 99),
Return false;.
Lo he hecho así porque como el campo de texto tenía size=2 valía así, pues era imposible escribir, por ejemplo, 100.
Pero, ¿cómo se haría mediante una expresión regular? Cómo pinto un rango entre 18 y 99.
Porque está claro que no puede ser:
(./([18-99])*$/.test(document, getelementbyid(edad), value)).
He buscado por todos lados cómo hacer un rango de números, algo así cómo sería en letras [f-p].
-- IMÁGENES ADJUNTAS --
![]()
Última edición por Pit [reloaded]; 05-08-2011 a las 10:44
Ahora que soy inmensamente rico, me ha dado por aprender Blender
Hace mucho que no toco js, pero supongo que, será así:
Código:} else if. //comprueba que el rango de edad esta entre 18 y 99. (Document, getelementbyid(edad), value>1 && (document, getelementbyid(edad), value<99) {. Alert(el rango del campo edad tiene que estar comprendido entre 18 y 99). Return false;
Acepto todo tipo de crí*ticas en cualquiera de mis mensajes, y cuanto más duras mejor.
Lo que vale la pena del premio es siempre la batalla.
Gracias kashir, voy a ver. Postdata: vi una cosa que me gustó en tu blog, te dejé un mensaje.
Ahora que soy inmensamente rico, me ha dado por aprender Blender
Hola Pit, aquí va el ejercicio con comentarios.
Código:<.doctype html public -//w3c//dtd xhtml 1.0 strict//en http://www.w3.org/tr/xhtml1/dtd/xhtml1-strict, dtd>. Html>. Head>. meta http-equiv=content-type content=text/html, charset=utf8 />. title>validar formulario</title>. script>. // valida el formulario. // si devuelve true, se envía. Si devuelve false, no se envía. Function validar(). {. // recogemos variables. // observa Pit, un método alternativo para acceder a un formulario. Var nombre = document, forms[formulario"][nombre"].value. Var edad = document, forms[formulario"][edad"].value. Var correo = document, forms[formulario"][correo"].value. If (nombre, length < 5) { alert(nombre debe tener más de 4 letras), return false; }. // ojo, el enunciado decía que no podía tener números, pero sí acentos, comas, espacios. // no hay que poner /([0-9])$/. If (/([0-9])/.test(nombre)) { alert(nombre no puede tener números), return false; }. If (./([0-9])+$/.test(edad) || edad < 18 || edad > 99) { alert(edad no comprendida entre 18 y 99), return false; }. If (correo, length < 6) { alert(correo debe tener más de 5 letras), return false; }. // la más compleja. If (./([\w])+@(\w)+\.(\w){2,4}$/.test(correo)) { alert(correo no es valido), return false; }. /*. Las expresiones regulares van más o menos así: /<expresion regular>/ en cualquier parte de la cadena. /<expresion regular>/ desde el inicio de la cadena. /<expresion regular>$/ desde el inicio al final de la cadena. /(grupo validacion)<repetición><caracteres fijos>. $/ repetir lo que se quiera. Ejemplos de (grupo validacion): [a-za-z] [0-9] \w (palabras) \s (espacios). Ejemplos de <repetición> (es un parámetro optativo): + (uno o más caracteres), * (más de un carácter)? (al menos un carácter). {5,10} entre 5 y 10 caracteres, {5} 5 caracteres, {5,} al menos 5 caracteres, {,5} menos de 5 caracteres. Ejemplo: cadena sin números y con al menos 5 caracteres: If (./([0-9]){5,}$/) error (el dentro de [] es negación). Si metemos espacios para verlo mejor. Desde el inicio no contengan números longitud 5 o más hasta el final. / ([0-9]) {5,} $ /. Ejemplo: validar un DNI del tipo 1234567-x, con - Optativo. If (./([0-9]){5,8}([\-])? ([a-za-z]){1}$/) error (el guión hay que precederlo con una. Si metemos espacios para verlo mejor. Desde el principio números longitud entre 5 y 8 guión optativo letras una hasta el final. / ([0-9]) {5,8} ([\-])? ([a-za-z]) {1} $ /. Y el del correo (es una versión simple). Desde el principio palabra al menos una la arroba palabra al menos una el punto palabra entre 2-4 letras. / ([\w]) + @ (\w) +. (\w) {2,4} $/. */. Alert(formulario correcto). Return true. }. /script>. style>. Body { font-family: verdana; }. #divformulario { width: 500px, Margin: 100px auto, border: 1px solid gray, padding: 50px; }. Label { float: left, text-align: right, width: 150px, font-weight: bold, Margin-right: 5px; }. Input { border: 1px solid silver; }. P { Margin: 2px 0px; }. /style>. /head>. body>. Div id=divformulario>. form method=post name=formulario onsubmit=return validar(),>. P>. label>nombre</label>. input type=text name=nombre size=25>. /p>. P>. label>edad</label>. input type=text name=edad size=3>. /p>. P>. label>correo</label>. input type=text name=correo size=50>. /p>. P>. label> </label>. input type=submit value=enviar>. /p>. /form>. /div>. /body>. /html>
Última edición por viriathus; 05-08-2011 a las 20:51 Razón: cambio type="nombre" por type="text"
30 años de Star Wars
Grande viriathus.
Ahora que soy inmensamente rico, me ha dado por aprender Blender
Revisado viriathus. Muy limpio y profesional, eso sí es un código y no lo mío. Lo único que en esta línea del código:
If (./([0-9])+$/.test(edad) || edad < 18 || edad > 99) { alert(edad no comprendida entre 18 y 99), return false; }.
Cambio el mensaje de alerta, pues la comprobación afecta tanto a los valores (si son números) como al rango, por lo que el mensaje debería avisar de ambos errores.
If (./([0-9])+$/.test(edad) || edad < 18 || edad > 99) { alert(el campo edad sólo admite números y ha de estar comprendida entre 18 y 99), return false; }.
Por cierto, muy útiles tus notas sobre las expresiones regulares.
Última edición por Pit [reloaded]; 05-08-2011 a las 20:43
Ahora que soy inmensamente rico, me ha dado por aprender Blender
Por cierto, viéndolo ahora veo que puse.
Que funciona en Chrome, pero que no es de recibo.Código:<input type=nombre>
Código:<input type=text>
30 años de Star Wars
<html>
head>
title>maldito php</title>
/head>.
body>.
? Php.
//yepa. Echo niños, tras una entrega salvaje.
Creo que tendré una semana tranquila y.
Arranco con el php.
//iré publicando dudas.
? >.
/body>
/html>.
Última edición por Pit [reloaded]; 08-09-2011 a las 16:38
Ahora que soy inmensamente rico, me ha dado por aprender Blender
Por aquí estaremos para resolverlas.<html>.
Head>.
title>maldito php</title>.
/head>.
body>.
? Php.
//yepa. Echo niños, tras una entrega salvaje. </br>.
Creo que tendré una semana tranquila y </br>.
Arranco con el php.
//iré publicando dudas.
¿>.
/body>.
/html>.
Gracias, Modie. Una rápida si estáis alguno por ahí, en Dreamweaver, al dar f12 para ver lo que voy probando, como estoy con php me pide un servidor de prueba.
He instalado ya el apache, que está en la carpeta appserv.
Pero no acabo de entender cómo asignarlo.
Mi archivo php está en la carpeta del proyecto local.
Cuando me pide que le asigne el servidor de prueba. ¿a qué carpeta lo dirijo?
Cómo lo hago?
Última edición por Pit [reloaded]; 08-09-2011 a las 17:21
Ahora que soy inmensamente rico, me ha dado por aprender Blender
Vaya hace años que no uso Windows y no uso Dreamweaver, programo en un editor de texto con resaltado de sintaxis tipo notepad++. Los ficheros los meto directamente en un servidor de pruebas así que, no sabría decirte cuáles son los pasos para configurar el servidor en Dreamweaver, aunque supongo que, te pedirá un servidor ftp o algo para poder subir fichero de esta manera, sé que alguna opción de esas traía.Gracias, Modie. Una rápida si estáis alguno por ahí, en Dreamweaver, al dar f12 para ver lo que voy probando, como estoy con php me pide un servidor de prueba.
He instalado ya el apache, que está en la carpeta appserv.
Pero no acabo de entender cómo asignarlo.
Mi archivo pho está en la carpeta del proyecto local.
Cuando me pide que le asigne el servidor de prueba. ¿a qué carpeta lo dirijo?
Cómo lo hago?
A ver si alguien que tenga Dreamweaver puede ayudarte mejor que yo con este tema.
Solucionado Modie.
Ahora que soy inmensamente rico, me ha dado por aprender Blender