Professional Documents
Culture Documents
El lenguaje PHP es un lenguaje de programacin de estilo clsico, con esto quiero decir
que es un lenguaje de programacin con variables, sentencias condicionales, bucles,
funciones.... No es un lenguaje de marcas como podra ser HTML, XML o WML. Est
mas cercano a JavaScript o a C, para aquellos que conocen estos lenguajes.
Pero a diferencia de Java o JavaScript que se ejecutan en el navegador, PHP se ejecuta
en el servidor, por eso nos permite acceder a los recursos que tenga el servidor como
por ejemplo podra ser una base de datos. El programa PHP es ejecutado en el servidor
y el resultado enviado al navegador. El resultado es normalmente una pgina HTML
pero igualmente podra ser una pagina WML.
<html>
<head>
<title>Ejemplo de PHP</title>
</head>
<body>
Parte de HTML normal.
<BR><BR>
<?php
echo "Parte de PHP<br>";
for($i=0;$i<10;$i++)
{
echo "Linea ".$i."<br>";
}
?>
</body>
</html>
El cdigo PHP ejecutado tiene dos partes: la primera imprime "Parte de PHP" y la
segunda es un bucle que se ejecuta 10 veces de 0 a 9, por cada vez que se ejecuta se
escribe una lnea, la variable $i contiene el nmero de lnea que se est escribiendo.
No importa si no entiende muy bien el programa este ejemplo solo es para ilustrar
como se intercala el cdigo HTML y el cdigo PHP.
Variables
Una variable es un contenedor de informacin, en el que podemos meter nmeros
enteros, nmeros decimales, carcteres... el contenido de las variables se puede leer y
se puede cambiar durante la ejecucin de una pgina PHP.
En PHP todas las variables comienzan con el smbolo del dlar $ y no es necesario
definir una variable antes de usarla. Tampoco tienen tipos, es decir que una misma
variable puede contener un nmero y luego puede contener carcteres.
<html>
<head>
<title>Ejemplo de PHP</title>
</head>
<body>
<?php
$a = 1;
$b = 3.34;
$c = "Hola Mundo";
echo $a,"<br>",$b,"<br>",$c;
?>
</body>
</html>
En este ejemplo hemos definido tres variables, $a, $b y $c y con la instruccin echo
hemos impreso el valor que contenan, insertando un salto de lnea entre ellas.
Existen 2 tipos de variables, las variables locales que solo pueden ser usadas dentro de
funciones y las variables globales que tienen su mbito de uso fuera de las funciones,
podemos acceder a una variable global desde una funcin con la instruccin global
nombre_variable;
Aritmticos
Los operadores de PHP son muy parecidos a los de C y JavaScript, si usted conoce
estos lenguajes le resultaran familiares y fciles de reconocer.
Estos son los operadores que se pueden aplicar a las variables y constantes numricas.
Operador Nombre
Ejemplo Descripcin
Suma
5+6
Resta
7-9
Multiplicacin 6 * 3
Divisin
4/8
Mdulo
7%2
++
Suma 1
$a++
--
Resta 1
$a--
<html>
<head>
<title>Ejemplo de PHP</title>
</head>
<body>
<?php
$a = 8;
$b = 3;
echo $a + $b,"<br>";
echo $a - $b,"<br>";
echo $a * $b,"<br>";
echo $a / $b,"<br>";
$a++;
echo $a,"<br>";
$b--;
echo $b,"<br>";
?>
</body>
</html>
Comparacin
Los operadores de comparacin son usados para comparar valores y as poder tomar
decisiones.
Operador Nombre
Ejemplo
==
Igual
$a == $b $a es igual $b
!=
Distinto
$a != $b
$a es distinto $b
<
Menor que
$a < $b
$a es menor que $b
>
Mayor que
$a > $b
$a es mayor que $b
<=
>=
<html>
<head>
<title>Ejemplo de PHP</title>
</head>
<body>
<?php
$a = 8;
$b = 3;
$c = 3;
echo $a == $b,"<br>";
echo $a != $b,"<br>";
echo $a < $b,"<br>";
echo $a > $b,"<br>";
echo $a >= $c,"<br>";
echo $b <= $c,"<br>";
?>
</body>
</html>
Lgicos
Los operadores lgicos son usados para evaluar varias comparaciones, combinando los
posibles valores de estas.
Operador Nombre Ejemplo
&&
And
||
(7>2) || (2<4)
Or
(7>2) or (2<4)
No
! (7>2)
<html>
<head>
<title>Ejemplo de PHP</title>
</head>
<body>
<?php
$a = 8;
$b = 3;
$c = 3;
echo ($a == $b) && ($c > $b),"<br>";
echo ($a == $b) || ($b == $c),"<br>";
echo !($b <= $c),"<br>";
?>
</body>
</html>
Condicionales
Las sentencias condicionales nos permiten ejecutar o no unas ciertas instrucciones
dependiendo del resultado de evaluar una condicin. Las ms frecuentes son la
instruccin if y la instruccin switch.
Sentencia if ... else
<?php
if (condicin)
{
Sentencias a ejecutar cuando la
condicin es cierta.
}
else
{
Sentecias a ejecutar cuando la
condicin es falsa.
}
?>
Bucles
Los bucles nos permiten iterar conjuntos de instrucciones, es decir repetir la ejecucin
de un conjunto de instrucciones mientras se cumpla una condicin.
Sentencia while
<?php
while (condicin)
{
intrucciones a ejecutar.
}
?>
Mientras la condicin sea cierta se reiterar la ejecucin de las instrucciones que estn
dentro del while.
<html>
<head>
<title>Ejemplo de PHP</title>
</head>
<body>
Inicio<BR>
<?php
$i=0;
while ($i<10)
{
echo "El valor de i es ", $i,"<br>";
$i++;
}
?>
Final<BR>
</body>
</html>
<body>
Inicio<BR>
<?php
for($i=0 ; $i<10 ; $i++)
{
echo "El valor de i es ", $i,"<br>";
}
?>
Final<BR>
</body>
</html>
La cadena de formato puede incluir una seria de carcteres especiales que indican
como formatear las variables que se incluyen en la instruccin.
Elemento
Tipo de variable
%s
Cadena de carcteres.
%d
%f
%c
Carcter ASCII.
procesa2.php
<html>
<head>
<title>Ejemplo de PHP</title>
</head>
<body>
<H1>Ejemplo de procesado de formularios</H1>
El nombre que ha introducido por GET es: <?php echo $_GET['nombre'],"
",$_GET['apellidos'] ?><br>
El nombre que ha introducido por POST es: <?php echo $_POST['nombre'],"
",$_POST['apellidos'] ?>
<br>
</body>
</html>
El resultado final es el mismo, solo que con el mtodo GET podemos ver los
parmetros pasados ya que estn codificados en la URL.
Envio de emai ls
PHP nos ofrece la posibilidad de enviar emails de una manera sencilla y fcil, para ello
el lenguaje nos proporciona la instruccin mail( ).
<?php
mail(destinatario, tema, texto del mensaje);
?>
En el parmetro destinatario pondremos la direccin de email a donde se enviar el
mensaje, en el parmetro tema el tema o subject del mensaje y el parmetro texto del
mensaje el cuerpo del mensaje en formato texto plano.
Existe una sintaxis extendida de la instruccin mail( ) que nos permite aadir
informacin adicional a la cabecera del mensaje.
<?php
mail(destinatario, tema, texto del mensaje, informacin adicional de cabecera);
?>
email.phtml
<html>
<head>
<title>Ejemplo de PHP</title>
</head>
<body>
<H1>Ejemplo de envio de email</H1>
<?
$direccion=$_GET['direccion'];
$tipo=$_GET['tipo'];
if ($direccion!=""){
if ($tipo=="plano"){
// Envio en formato texto plano
mail($direccion,"Ejemplo de envio de email","Ejemplo de envio de email de texto
plano\n\nWebEstilo.\nhttp://www.webestilo.com/\n Manuales para desarrolladores
web.\n","FROM: Pruebas <webmaster@hotmail.com>\n");
} else {
// Envio en formato HTML
mail($direccion,"Ejemplo de envio de email","<html><head><title>WebEstilo.
Manual de PHP</title></head><body>Ejemplo de envio de email de
HTML<br><br>WebEstilo.<br>http://www.webestilo.com/<br> <u>Manuales</u>
para <b>desarrolladores</b> web.</body></html>","Content-type: text/html\n",
"FROM: Pruebas <webmaster@hotmail.com>\n");
}
echo "Se ha enviado un email a la direccion: ",$direccion," en formato
<b>",$tipo,"</b>.";
}
?>
<br>
</FORM>
</body>
</html>
Invocar a
mysql_list_dbs.
value=1>Castellano
value=2>Francs
value=4>Ingls
value=8>Alemn
value=16>Blgaro
value=32>Chino
Fjate que he mantenido exactamente el mismo orden que he definido el campo SET
de la tabla.
Y fjate tambin en los valores: 1, 2, 4, 8, 16 y 32 que son precisamente las potencias
de 2:
20, 21, 22, 23, 24, 25, y 26
El caso es que al seleccionar valores, van aadindose al array. Por ejemplo. Si
selecciono: Francs y Blgaro el array sera este: var[0]=2, var[1]=16
Si sumamos esos valores (2 + 16) nos dara 18 y si convertimos a binario el dieciocho
resultar:
010010
Esas posiciones de registro sern utilizadas por MySQL para escribir los registros que
se vayan aadiendo despus del proceso de borrado.
Para eliminar esos registros vacios y reducir el tamao de una tabla, MySQL dispone
de una sentencia que es la siguiente:
OPTIMIZE TABLE tabla
Esta sentencia -que debe usarse despus de un proceso de borrado ampliodefragmenta la tabla eliminando los registros inutilizados por el proceso DELETE, con
lo que logra una reduccin del tamao de la tabla a su dimensin ptima..
Presentacin de JavaScript
Para los creadores de sitios Web, la evolucin de HTML ha sido una bendicin no
exenta de controversia. En los primeros das de la WWW, HTML era bastante simple, y
bastante fcil de aprender casi todo lo que se necesitaba saber para agrupar pginas
Web.
Como la Web es un medio dinmico, los diseadores tambin queran que sus pginas
interaccionaran con el usuario, y pronto result evidente que HTML era insuficiente
para atender esta demanda. Netscape invent JavaScript para controlar el navegador y
aadir brillantez e interactividad a las pginas Web.
Objetos
Primero, pensemos en los objetos. Un objeto es una cosa de cualquier clase. Un gato,
un perro y una bicicleta son objetos en el mundo fsico. Los objetos con los que trata
en JavaScript en los navegadores Web son ventanas, formularios y lo elementos de los
formularios, como botones y las casillas de verificacin.
Propiedades
Las propiedades pueden modificar a los objetos, y la misma propiedad se puede aplicar
a objetos completamente diferentes. Supongamos que tiene una propiedad llamada
vaco. Puede utilizar vaco donde quiera que convenga, tanto para decir que el
estmago del gato esta vaco, como para decir que su taza esta vaca.
Observe que el teclado de la computadora y las ruedas de una bicicleta no son slo
propiedades; son tambin objetos, que a su vez pueden tener propiedades. As que los
objetos pueden tener subobjetos.
Mtodos
Las cosas que pueden hacer los objetos se llaman mtodos. Los gatos ronronean, las
computadoras se rompen y las bicicletas ruedan. Los objetos de JavaScript tambin
tienen mtodos: click() para los botones, open() para las ventanas y el texto puede
seleccionarse gracias al mtodo selected(). Los parntesis indican que nos estamos
refirindonos a un mtodo, y no a una propiedad.
Manipulacin de eventos
Los eventos son acciones que el usuario realiza mientras visita una pgina. Enviar un
formulario y mover el ratn sobre una imagen son dos ejemplos de eventos.
Al escribir un script, no es necesario anticipar toda accin posible que pueda efectuar
el usuario, basta con aquellas en las que quiera que suceda algo especial. Por ejemplo,
su pgina se cargar bien sin necesidad de un manejador de eventos onLoad.
onClick
Se produce cuando el usuario efecta un click en un botn izquierdo del ratn sobre
algn elemento de un formulario o un enlace.
onMouseOver y onMouseOut
El evento onMouseOver sucede cada vez que el cursor del ratn pasa por encima de un
elemento de la pgina, mientras que el evento onMouseOut sucede cuando se deja de
seleccionar ese elemento.
onLoad y onUnLoad
El evento onLoad es aquel que se produce cuando un navegador carga un documento
HTML o una imagen. Este evento se utiliza dentro de la etiqueta <BODY> del
documento HTML o dentro de la etiqueta <FRAMESET> en el supuesto de estar
trabajando con frames; onUnLoad es el evento opuesto a onLoad. Su misin consiste
en ejecutar un script cuando la pgina Web actual se descarga, ya sea porque se
accede a otro Web o bien porque se utilizan los botones de avanzar y retroceder.
onChange
onSubmit
Este evento se encarga de ejecutar un determinado cdigo de JavaScript al realizarse
el envo de un formulario. El ejemplo mas claro de utilizacin de este evento es evitar
que un formulario sea enviado si determinadas condiciones no son cumplidas.
onFocus y onBlur
EL evento onFocus detecta la entrada (focus) en un elemento de un formulario, por
ejemplo un text o window; mientras que onBlur acta de manera contraria, es decir,
detecta la prdida del focus. La utilizacin del evento onFocus puede provocar un ciclo
infinito que bloque nuestra computadora.
onSelect
Este evento hace que se ejecute un script cuando se selecciona texto dentro de un
elemento de un formulario, ya sea una casilla de texto o de rea de texto.
onAbort
Se produce cuando se bloquea la carga de una imagen, pulsando por ejemplo el botn
Detener del navegador.
onReset
Se produce cuando se pulsa un botn de reset en un formulario. Este evento puede
servir, por ejemplo, para advertir al usuario antes de efectuar un reset del formulario.
onMove y onResize
El evento onMove se genera cuando el usuario mueve una ventana o frame de a
pantalla principal del navegador. Cuando un usuario modifica el tamao de la ventana
o del frame actual, se genera un evento onResize. Estos eventos estn incorporados en
los objetos window y frame.
ondblclick
Indica que se ha hecho doble clic en el elemento
Iniciando
Dnde colocar los scripts.
Los guiones se pueden colocar en uno de de dos sitios posibles de la pgina HTML:
entre las etiquetas <head> y </head> (encabezado) o entre las etiquetas <body> y
</body> (cuerpo).
Hay una etiqueta contenedora HTML que denota guiones, y que, es previsible, empieza
por <script> y termina por </script>.
Para escribir su primer guin.
1.
2.
document.write("Hola, Informtica!")
3.
<script>
Con esto se termina el guin JavaScript y se indica al navegador que quede a la espera
de encontrar nuevamente cdigo HTML.
Comentarios
1.
En un ejemplo, podemos captar la atencin del usuario con alarmas, o banner muy
animados, pero no sera buena idea. En lugar de eso utilizaremos una alerta de
JavaScript y mostrara una ventana de alerta bonita y amigable.
Tan solo con colocar el texto para que aparezca la ventana dentro del mtodo alert() y
entre comillas.
alert("Seguro, adelante")
Esta llave ciera la parte que se ejecuta cuando confirm() devuelve verdadero
4.
else
{
Aqu empieza la seccin que solo ejecuta cuando el usuario hace clic en el botn de
Cancelar.
5.
alert("Mejor no")
Sin embargo, si el usuario hace clic en el botn Cancelar, confirm() devuelve falso y
se visualiza, el mensaje Mejor no.
6.
Verdadero
Falso
else
{
alert("Mejor no")
}
</script>
En ocasiones, en lugar de formular una simple pregunta del tipo Si-No, necesitar
una respuesta ms especfica. Para esas ocasiones el siguiente guin nos permite
hacer una pregunta (con una respuesta predeterminada) y escribir una respuesta.
1.
2.
window.location="bienvenido.html"
3.
</script>
window.location="bienvenido.html"
</script>
Cuando un usuario carga el guin del ejemplo anterior, va a una pgina inicial, y luego,
dependiendo del guin, el navegador carga automticamente otra pgina. Este mtodo
siempre deja ver al usuario al menos un poco de la primera pgina, antes de ser
enviado a la segunda. Este comportamiento no es muy elegante, as que el siguiente
guin, le muestra un mtodo ms adecuado de efectuar el redireccionamiento,
incrustando la redireccin en un vnculo. Cuando hace clic en el vnculo, deber ser
dirigido a una de dos pginas posibles, dependiendo si tiene o no JavaScript.
<a href="sinjavascript.html"
onclick="window.location='bienvenido.html';return false">
Bienvenido al Nuevo sitio</a>
Lo novedoso es que se ha efectuado una redireccin sin que el usuario sepa lo que ha
pasado- est en una de las dos pginas posibles, dependiendo de lo que disponga
tener.
Uno de los mejores usos de JavaScript es el de aadir inters visual a las pginas Web
animando grficos. De eso trata este mdulo. Hacer las imgenes de las pginas Web
cambien cuando el usuario mueve el ratn sobre ellas, haciendo por tanto que la
pgina reaccione con el usuario, es uno de los trucos ms comunes.
Imgenes de sustitucin
La idea que subyace en las imgenes de sustitucin es simple. Tenemos dos imgenes.
La primera, o imagen original, se carga y se visualiza con el resto de la pgina Web.
Cuando el usuario mueve el ratn sobre la imagen original, el navegador la cambia
rpidamente por la segunda, o imagen de sustitucin, creando la ilusin de
movimiento o animacin.
<a href="siguiente.html"
onmouseover="document.arrow.src='images/sobre.gif'"
onmouseout="document.arrow.src='images/reposo.gif'">
<img src="images/reposo.gif" width="147" height="82"
border="0" name="arrow" alt="flecha" /></a>
1.
2.
onmouseover="document.arrow.src='images/sobre.gif'"
3.
onmouseout="document.arrow.src='images/reposo.gif'"
4.
if (document.images) {
sobre = new Image
reposo = new Image
sobre.src = "images/sobre.gif"
reposo.src = "images/reposo.gif"
}
else {
arrowRed = ""
arrowBlue = ""
document.arrow = ""
}
ste es el cdigo que dice a los navegadores antiguos que hacer. Para evitar los
mensajes de error en dichos navegadores, hay que crear algunas variables de
restriccin, esto es, variables que no harn nada, salvo crearse y permanecer vacas.
<a href="next.html"
onmouseover="document.arrow.src=sobre.src"
onmouseout="document.arrow.src=reposo.src"
Es improbable que slo se conforme con una imagen de sustitucin en una pgina.
Como las imgenes se utilizan con frecuencia como elementos de la interfaz de usuario
de una pagina, es probable que quiera disponer de ms de un botn o men que haga
uno de este efecto. Para utilizar ms de una imagen de sustitucin, tiene que aadir un
poco de cdigo extra.
1.
Mientras que la tarea anterior tuvimos que crear dos objetos para la imagen nueva, en
este ejemplo tenemos que crear cuatro. En general, deber crear dos objetos de
imagen nuevos por cada imagen de sustitucin. Por tanto, en este paso est
estableciendo variables para dos imgenes de sustitucin.
2.
boton1a.src = "images/boton1a.gif"
boton1b.src = "images/boton1b.gif"
boton2a.src = "images/boton2a.gif"
boton2b.src = "images/boton2b.gif"
Aqu establecemos el atributo src de cada objeto de imagen nuevo al nombre del
archivo grfico con el que est asociado.
3.
boton1a = ""
boton1b = ""
boton2a = ""
boton2b = ""
document.boton1 = ""
document.boton2 = ""
Cmo en la tarea anterior, para evitar errors en los navegadores antiguos, definimos
variables ficticias, con una cadena vaca como contenido.
<a href="pagina1.html"
onmouseover="document. boton1.src= boton1b.src"
onmouseout="document. boton1.src= boton1a.src">
<img src="images/ boton1a.gif" border="0"
name="boton1" alt="Boton 1" /></a>
<a href="pagina1.html"
onmouseover="document. Boton2.src= boton2b.src"
onmouseout="document. Boton2.src= boton2a.src">
<img src="images/ boton1a.gif" border="0"
name="boton2" alt="Boton 2" /></a>
if (document.images) {
flecha1= new Image
flecha2 = new Image
</script>
<a href="next.html"
onmouseover="document.flecha.src=flecha2.src"
onmouseout="document.flecha.src=flecha1.src">
Siguiente pagina</a>
Observe que el vnculo de texto que dice Siguiente pgina est dentro de la
etiqueta de ancla, lo que lo convierte en disparador de onmousover y de onmouseout.
Hemos sacado la etiqueta img de la etiqueta de vnculo.
Hasta ahora hemos visto cmo pasando el ratn por encima de una sola imagen de
sustitucin. Pero tambin puede dispararse una imagen de sustitucin con varias
imgenes diferentes. Puede resultar muy til cuando tiene varias imgenes que quiere
resaltar. Desplazndose sobre cada una de las imgenes aparecer la descripcin de
esa imagen.
Para trabajar con mltiples vnculos cambien una sola imagen de sustitucin
if (document.images) {
vera= new Image
verb = new Image
verc = new Image
bg= new Image
vera.src = "images/imagen1.gif"
verb.src = "images/imagen2.gif"
verc.src = "images/imagen3.gif"
bg.src = "images/bg.gif"
}
else
{
vera= ""
verb= ""
verc= ""
bg= ""
document.textField = ""
}
<a href="pagina1.html"
onmouseover="document.textField.src=vera.src"
onmouseout="document.textField.src=bg.src">
<img src="images/boton1.gif" border="0">
</a>
Los ultimos ejemplos empleaban una gran cantidad de cdigo casi idntico. Para las
tareas repetitivas son candidatas perfectas para las funciones. Una vez escrito el
codigo que realiza la tarea repetitiva, slo tiene que llamar a la funcin y pasarle los
datos que necesite para realizar su tarea. El siguiente script realiza la misma tarea,
pero utiliza una funcin para que el cdigo sea un poco ms fluido.
function cambiaimg(objimg,nuevo)
{
if (document.images)
{
document[objimg].src= eval(nuevo + ".src")
}
}
Este primer paso crea la funcin cambiaimg que tiene los parmetros, objimg y nuevo.
Luego, empieza una comprobacin condicional, document.images. Esto elimina la
necesidad de otra sentencia en la inicializacin de la variable original, si el navegador
no soporta imgenes, nunca sucede nada. La siguiente lnea establece
document[objimg].src al resultado de la variable nuevo concatenando con .src,
utilizando el mtodo eval para convertir la cadena de texto en un objeto.
Manipulacin de Formularios
Cada vez que necesite recopilar en sus sitios Web informacin de los usuarios, tendr
que utilizar un formulario.
Los formularios pueden contener la mayora de los elementos de una interfaz grfica
habitual, como campos de entrada, botones de radio, casillas de verificacin, mens
desplegables y listas de entrada. Adems, los formularios HTML pueden contener
campos de contrasea, para proteger al usuarios de los entrometidos.
Verificacin de contraseas
Cuando le pida al usuario que introduzca una contrasea que se solicitar en el futuro,
querr que la escriba dos veces, para asegurarse de que no se confundi al escribirla.
Si las dos contraseas coinciden, entonces el script se lo comunica al usuario con una
ventana de alerta.
function validForm(passForm) {
if (passForm.passwd1.value == "") {
alert("Debes de introducir una contrasea")
passForm.passwd1.focus()
return false
}
Tras definir la funcin comprobamos que el valor del campo passwd1 est vaco, como
muestra la expresin ==, si es as, desplegamos una ventana de alerta que solicite
una entrada, devuelva el cursor al campo passwd1 y evalu la funcin como falsa.
if (passForm.passwd1.value != passForm.passwd2.value) {
alert("Las contraseas no coinciden")
passForm.passwd1.focus()
passForm.passwd1.select()
return false
}
return true
onsubmit="return validForm(this)"
A fin de mejorar la apariencia del formulario, puede utilizar una imagen para el botn
encargado de enviar el formulario, en lugar de utilizar el botn HTML estndar.
Utilizara JavaScript para controlar lo que ocurre una vez que el usuario ha hecho clic
en la imagen de envo. El script necesita la adicin de una funcin al script y la
definicin de una imagen a modo de botn de Enviar lo que se realiza con la etiqueta
<a>.
function subForm() {
if (validForm(document.myForm)) {
function jumpPage(newLoc) {
newPage = newLoc.options[newLoc.selectedIndex].value
if (newPage != "") {
window.location = newPage
}
Esta sentencia condicional primero verifica que newPage no es igual a nada (es decir,
no est vaca). En otras palabras, si newPage tiene un valor, le dice a la ventana que
vaya al URL especificado por la opcin del men elegida.
<body onload="document.myForm.newLocation.selectedIndex=0">
Al cargar la pgina el primer lugar, podemos estar seguros que la opcin visualizada es
Seleccione un sitio. Esto ser cierto cuando la pgina se ha cargado primero en el
navegador.
La etiqueta select crea el men con el nombre newLocation. Cuando el usuario elige
una opcin del men, el manejador de eventos onchange llama la funcin jumpPage, a
la que pasa el valor this, que se convierte en el valor de newLoc. El valor del objeto
this es el URL de la opcin de men elegida por el usuario, como se especifica en las
sentencias option value de las lneas que se encuentran por delante de la etiqueta
<select>.
Este array nuevo contiene doce valores para los doce meses, con el nmero correcto
de das para cada mes.
function populateDays(monthChosen) {
monthStr = monthChosen.options[monthChosen.selectedIndex].value
La funcin populateDays es llamada cada vez que el usuario selecciona una opcin
nueva en el men de meses; el objeto seleccionado se pasa a la funcin.
if (monthStr != "") {
theMonth=parseInt(monthStr)
document.myForm.days.options.length = 0
for(i=0;i<monthDays[theMonth];i++) {
document.myForm.days.options[i] = new Option(i+1)
}
<select name="days">
<option>Day</option>
</select>
Estas lneas establecen el valor inicial del men de das, la pabla Da. En este punto, no
hay valores numricos en el men.
Las expresiones regulares son una sorprendente e impactante forma de validar y dar
formato a las cadenas existentes. Mediante el uso de expresiones regulares, con
escribir una o dos lneas de cdigo JavaScript podr cumplir con varias tareas, cosa
que de otro modo requerira docenas de lneas.
Indicadores de posicin
Indica el inicio.
Indica el final.
Cdigos de escape
\f
Avance de pgina
\+
Signo de mas
\n
Nueva lnea
\?
Interrogacin
\r
Retorno de Carro
\|
\t
Tabulador
\(
Parntesis apertura
\v
Tabulador vertical
\)
Parntesis cerrado
\/
Barra inclinada /
\[
Corchete apertura
\\
Barra invertida \
\]
Corchete cerrado
\.
Punto .
\{
Llave apertura
\*
Asterisco *
\}
Llave cerrado
Cuantificadores de repeticin
*
{m,n}
{m, }
{m}
Ejemplos
Variable=/ab*c/
Resultados
ac
abc
abbbbbbbbbbbbbbbbbbbc
Variable=/ab+c/
Resultados
abc
abbbbbbbbbbbc
ac No coincide debido a que debe de aparecer la b al menos una vez.
Variable=/ab?c/
Resultados
ac
abc
Pero no abbc
Variable=/a*b{5}c/
Variable=/ab{5,7}c/
Creara una expresin regular para buscar correspondencias de una a seguida de entre
cinco y siete caracteres b luego seguido de una letra c.
Variable=/ab{3,}c/
Creara una expresin para buscar correspondencias de una a seguida de tres o mas
letras b seguidas de un carcter c.
Creacin de Patrones.
Variable=/^http/;
Variable=/http$/;
Concordar solamente con cadenas que terminen con http. Se pueden utilizar los dos
indicadores de posicin de forma combinada para asegurar una correspondencia exacta
del patrn deseado
Variable=/^http$/
[caracteres]
[^caracteres]
\w
\W
\s
\S
\d
Cualquier dgito.
Lo mismo que [0-9]
\D
\b
\B
[\b]
Un carcter de retorno.
Variable=/^[a-z][a-z0-9_-]*/
Sub-expresiones.
Aparte de agrupar secuencias de caracteres como una unidad, los parntesis en las
expresiones regulares crean subexpresiones en la cadena sobre la que actan. Cuando
se halla correspondencia, las subexpresiones entre parntesis pueden ser referidas de
forma individual utilizando las propiedades estticas del propio objeto RegExp.
Cliente=Angel 555-1212
Patron=/(\w+) ([\d-]+)/
Patron.test(Cliente)
Las subcadenas alas que se accede de esta manera se cuentan de izquierda a derecha,
empezando con $1 y terminando en $9 generalmente.
Cliente=Angel 555-1212
Patron=/(\w+) ([\d-]+)/
Patron.test(Cliente)
Alert($1=+RegExp.$1 + \n$2=+RegExp.$2).
Objeto RegExp
Ahora que sabemos cmo formar expresiones regulares es hora de ver cmo
utilizarlas. Hay una variedad de propiedades y mtodos relacionados con el objeto
RegExp que pueden utilizarse para comprobar y analizar los resultados de una
expresin regular aplicada a una porcin de datos.
Patron=new RegExp(a*bbbc,i)
Alert(patron.test(1212c))
Alert(patron.test(aaaabBbcded))
//Falso
//Verdadero