<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	xmlns:media="http://search.yahoo.com/mrss/"
	>

<channel>
	<title>PeHachePe</title>
	<atom:link href="http://pehachepe.wordpress.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://pehachepe.wordpress.com</link>
	<description>Nunca aprenderás, Ra</description>
	<lastBuildDate>Sun, 16 Mar 2008 18:03:02 +0000</lastBuildDate>
	<generator>http://wordpress.com/</generator>
	<language>es</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<cloud domain='pehachepe.wordpress.com' port='80' path='/?rsscloud=notify' registerProcedure='' protocol='http-post' />
<image>
		<url>http://www.gravatar.com/blavatar/aa483e96076f2298f0d6a68c6ac44932?s=96&#038;d=http://s.wordpress.com/i/buttonw-com.png</url>
		<title>PeHachePe</title>
		<link>http://pehachepe.wordpress.com</link>
	</image>
			<item>
		<title>Menú desplegable con efectos script.aculo.us</title>
		<link>http://pehachepe.wordpress.com/2007/04/06/menu-desplegable-con-efectos-scriptaculous/</link>
		<comments>http://pehachepe.wordpress.com/2007/04/06/menu-desplegable-con-efectos-scriptaculous/#comments</comments>
		<pubDate>Fri, 06 Apr 2007 21:21:01 +0000</pubDate>
		<dc:creator>Ramón Castro</dc:creator>
				<category><![CDATA[AJAX]]></category>

		<guid isPermaLink="false">http://pehachepe.wordpress.com/2007/04/06/menu-desplegable-con-efectos-scriptaculous/</guid>
		<description><![CDATA[
Demasiado tiempo sin postear nada tras la remodelación de la web en la que decidí usar el servicio web de WordPress y retirar la antigua del hosting (bastante jaleo me da la otra). En esta nueva entrega os dejo el código de un menú desplegable construído a partir de una lista (elementos li) donde el [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=pehachepe.wordpress.com&blog=886399&post=19&subd=pehachepe&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p align="center"><img src="http://static.flickr.com/7/7319622_ba792f4563_m.jpg" alt="Menú desplegable" border="1" height="180" width="240" /></p>
<p>Demasiado tiempo sin postear nada tras la remodelación de la web en la que decidí usar el <a href="http://wordpress.com" target="_blank">servicio web de WordPress</a> y retirar la antigua del <a href="http://guebs.com" target="_blank">hosting</a> (bastante jaleo me da la <a href="http://ramoncastro.es" target="_blank">otra</a>). En esta nueva entrega os dejo el código de un menú desplegable construído a partir de una lista (elementos <b><i>li</i></b>) donde el truco para desplegar consiste en usar los efectos &#8220;<b><i>Fade</i></b>&#8221; y &#8220;<b><i>Appear</i></b>&#8221; de la librería <a href="http://script.aculo.us" target="_blank">Script.aculo.us</a>. Naturalmente, podíamos haber obviado su uso, pero ¿por qué no darle un toque de misterio al menú?</p>
<p>Al hacer clic sobre los elementos del submenú, se generará una petición AJAX que, gracias a la librería <a href="http://www.prototypejs.org/" target="_blank">Prototype</a>, hará aparecer rápidamente el contenido deseado en el div que hemos preparado a tal efecto (<b><i>div id=&#8221;paginas&#8221;</i></b>)</p>
<p>El juego de archivos es el siguiente:</p>
<p><i><b>index.html</b></i> &#8211;&gt; donde se presenta el menú encerrado en un <i><b>div</b></i></p>
<p><i><b>index.css</b></i> &#8211;&gt; donde se colocan espacialmente los div y se opta por un menú horizontal (puede, cómo no, colocarse en vertical)</p>
<p><i><b>funciones js</b></i> &#8211;&gt; donde incluímos las librerías citadas y una página donde se declaran las funciones que usamos para presentar los contenidos en el div &#8220;paginas&#8221;</p>
<p><i><b>pagina.php</b></i> &#8211;&gt; script que procesa la petición AJAX y muestra, en función de la opción elegida en el menú, el contenido (en el ejemplo, es solamente una frase, pero puede incluirse lo que se quiera &#8230; conexión con base de datos, formularios, etcétera)</p>
<p><i><b>imagen</b></i> &#8211;&gt; a modo de icono, cogida del proyecto Tango</p>
<p>Nada más. Es muy sencillo. Podéis verlo en funcionamiento <a href="http://ramoncastro.ogamehost.es/contenido/scripts/ajax/menu/index.html" target="_blank">aquí</a> y descargar el paquete .zip <a href="http://ramoncastro.ogamehost.es/contenido/scripts/ajax/menu/menu.zip" target="_blank">aquí</a>. No me voy sin darle las gracias a <i><b> jesusvld</b></i> por removerme la conciencia (gran <a href="http://www.ribosomatic.com/" target="_blank">web</a> de la que es partícipe; no dejéis de visitarla)</p>
<p>Saludos y hasta pronto</p>
<img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/pehachepe.wordpress.com/19/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/pehachepe.wordpress.com/19/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/pehachepe.wordpress.com/19/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/pehachepe.wordpress.com/19/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/pehachepe.wordpress.com/19/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/pehachepe.wordpress.com/19/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/pehachepe.wordpress.com/19/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/pehachepe.wordpress.com/19/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/pehachepe.wordpress.com/19/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/pehachepe.wordpress.com/19/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/pehachepe.wordpress.com/19/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/pehachepe.wordpress.com/19/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=pehachepe.wordpress.com&blog=886399&post=19&subd=pehachepe&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://pehachepe.wordpress.com/2007/04/06/menu-desplegable-con-efectos-scriptaculous/feed/</wfw:commentRss>
		<slash:comments>8</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/bbd6c58f71d90e42aacbc179ec6a61c4?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">ramoncastro</media:title>
		</media:content>

		<media:content url="http://static.flickr.com/7/7319622_ba792f4563_m.jpg" medium="image">
			<media:title type="html">Menú desplegable</media:title>
		</media:content>
	</item>
		<item>
		<title>Sencillo y primitivo formulario de contacto</title>
		<link>http://pehachepe.wordpress.com/2007/03/17/sencillo-y-primitivo-formulario-de-contacto/</link>
		<comments>http://pehachepe.wordpress.com/2007/03/17/sencillo-y-primitivo-formulario-de-contacto/#comments</comments>
		<pubDate>Sat, 17 Mar 2007 21:47:48 +0000</pubDate>
		<dc:creator>Ramón Castro</dc:creator>
				<category><![CDATA[AJAX]]></category>

		<guid isPermaLink="false">http://pehachepe.wordpress.com/2007/03/17/sencillo-y-primitivo-formulario-de-contacto/</guid>
		<description><![CDATA[
He estado dándole una vuelta al formulario para que las librerías incorporadas (prototype y scriptaculous) cobraran un mayor protagonismo, dejando a PHP únicamente la función de enviar el email. Con esta nueva revisión, AJAX se encarga de la validación.
He querido incluir los efectos visuales de la librería Scriptaculous (Effect.Appear y Effect.Fade) de tal manera que [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=pehachepe.wordpress.com&blog=886399&post=18&subd=pehachepe&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p style="text-align:center;"><img src="http://static.flickr.com/182/396655169_33868a32b2_m.jpg" alt="Email" /></p>
<p>He estado dándole una vuelta al formulario para que las librerías incorporadas (prototype y scriptaculous) cobraran un mayor protagonismo, dejando a PHP únicamente la función de enviar el email. Con esta nueva revisión, AJAX se encarga de la validación.</p>
<p>He querido incluir los efectos visuales de la librería Scriptaculous (Effect.Appear y Effect.Fade) de tal manera que el visitante debe ir cumplimentando el formulario para que los campos sucesivos vayan apareciendo. Como no estoy nada puesto aún envío la información al script PHP declarando un objeto AJAX (sé que estoy obviando el hecho de que con Prototype se hace más fácil) así que si alguien lo ve más fácil, le invito a que me lo diga; necesito consejos urgentemente <img src='http://s.wordpress.com/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
<p>Bueno, el código os lo pego aquí:</p>
<p><strong>contacto.php</strong></p>
<p style="background-color:#cccccc;"> <code><br />
&lt;?php<br />
/*<br />
This file is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or<br />
(at your option) any later version.</code>You cand find a copy of the GNU General Public License in the &#8220;license&#8221; directory.</p>
<p>You should have received a copy of the GNU General Public License along with this script; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA.</p>
<p>Ramon Castro (http://ramoncastro.es)</p>
<p>Uso de librerías AJAX:</p>
<p>Prototype -&gt; (http://www.prototypejs.org/)</p>
<p>Script.aculo.us -&gt; (http://script.aculo.us/)</p>
<p>Icono: Proyecto TANGO (http://tango.freedesktop.org/Tango_Icon_Gallery)</p>
<p>*/</p>
<p>?&gt;</p>
<p>&lt;!DOCTYPE html PUBLIC &#8220;-//W3C//DTD XHTML 1.0 Transitional//EN&#8221; &#8220;http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd&#8221;&gt;<br />
&lt;html xmlns=&#8221;http://www.w3.org/1999/xhtml&#8221;&gt;<br />
&lt;head&gt;<br />
&lt;meta http-equiv=&#8221;Content-Type&#8221; content=&#8221;text/html; charset=iso-8859-1&#8243; /&gt;<br />
&lt;title&gt;Formulario de contacto&lt;/title&gt;<br />
&lt;link href=&#8221;contacto.css&#8221; rel=&#8221;stylesheet&#8221; type=&#8221;text/css&#8221; /&gt;<br />
&lt;script src=&#8221;js/prototype.js&#8221; type=&#8221;text/javascript&#8221;&gt;&lt;/script&gt;<br />
&lt;script src=&#8221;js/scriptaculous.js&#8221; type=&#8221;text/javascript&#8221;&gt;&lt;/script&gt;<br />
&lt;script type=&#8221;text/javascript&#8221;&gt;<br />
function carga(){<br />
new Effect.Appear(document.getElementById(&#8216;nombre&#8217;));<br />
Field.focus(&#8216;txt_N&#8217;);<br />
}<br />
function valida_N(){<br />
var nombre = $F(&#8216;txt_N&#8217;);<br />
if(nombre==&#8221;)<br />
{<br />
new Effect.Appear(document.getElementById(&#8216;error&#8217;));<br />
}<br />
else<br />
{<br />
new Effect.Fade(document.getElementById(&#8216;error&#8217;));<br />
new Effect.Appear(document.getElementById(&#8216;email&#8217;));<br />
}<br />
}<br />
function valida_E(){<br />
var email = $F(&#8216;txt_E&#8217;);<br />
if(/^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{1,3})+$/.test(email))<br />
{<br />
new Effect.Fade(document.getElementById(&#8216;error_mail&#8217;));<br />
new Effect.Appear(document.getElementById(&#8216;mensaje&#8217;));<br />
}<br />
else<br />
{<br />
new Effect.Appear(document.getElementById(&#8216;error_mail&#8217;));<br />
}<br />
}<br />
function valida_M(){<br />
var mensaje = $F(&#8216;area_mensaje&#8217;);<br />
if(mensaje==&#8221;)<br />
{<br />
new Effect.Appear(document.getElementById(&#8216;error&#8217;));<br />
}<br />
else<br />
{<br />
new Effect.Fade(document.getElementById(&#8216;error&#8217;));<br />
new Effect.Appear(document.getElementById(&#8216;envia&#8217;));<br />
}<br />
}<br />
function objetoAjax(){</p>
<p>var xmlhttp=false;</p>
<p>try {</p>
<p>xmlhttp = new ActiveXObject(&#8220;Msxml2.XMLHTTP&#8221;);</p>
<p>} catch (e) {</p>
<p>try {</p>
<p>xmlhttp = new ActiveXObject(&#8220;Microsoft.XMLHTTP&#8221;);</p>
<p>} catch (E) {</p>
<p>xmlhttp = false;</p>
<p>}</p>
<p>}</p>
<p>if (!xmlhttp &amp;&amp; typeof XMLHttpRequest!=&#8217;undefined&#8217;) {</p>
<p>xmlhttp = new XMLHttpRequest();</p>
<p>}</p>
<p>return xmlhttp;</p>
<p>}<br />
function envia(){<br />
var nombre = $F(&#8216;txt_N&#8217;);<br />
var email = $F(&#8216;txt_E&#8217;);<br />
var mensaje = $F(&#8216;area_mensaje&#8217;);<br />
divResultado = document.getElementById(&#8216;resultado&#8217;);</p>
<p>ajax=objetoAjax();</p>
<p>ajax.open(&#8216;POST&#8217;, &#8216;envia.php&#8217;,true);</p>
<p>ajax.onreadystatechange=function()<br />
{</p>
<p>if (ajax.readyState==4)<br />
{</p>
<p>divResultado.innerHTML = ajax.responseText</p>
<p>}</p>
<p>}</p>
<p>ajax.setRequestHeader(&#8216;Content-Type&#8217;,'application/x-www-form-urlencoded&#8217;);<br />
if(nombre != &#8221; &amp;&amp; mensaje != &#8221; &amp;&amp; /^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{1,3})+$/.test(email))<br />
{</p>
<p>ajax.send(&#8216;nombre=&#8217;+nombre+&#8217;&amp;email=&#8217;+email+&#8217;&amp;mensaje=&#8217;+mensaje);<br />
}<br />
else<br />
{<br />
new Effect.Appear(document.getElementById(&#8216;error&#8217;));<br />
}<br />
}<br />
&lt;/script&gt;<br />
&lt;/head&gt;<br />
&lt;body onload=&#8221;carga()&#8221;&gt;<br />
&lt;div id=&#8221;contenido&#8221;&gt;<br />
&lt;form name=&#8221;formulario&#8221; id=&#8221;formulario&#8221;&gt;</p>
<p>&lt;p style=&#8221;display:none&#8221; id=&#8221;nombre&#8221;&gt;<br />
Nombre: &lt;input id=&#8221;txt_N&#8221; name=&#8221;txt_N&#8221; type=&#8221;text&#8221; size=&#8221;30&#8243; onkeydown=&#8221;valida_N()&#8221; /&gt;<br />
&lt;/p&gt;</p>
<p>&lt;p style=&#8221;display:none&#8221; id=&#8221;email&#8221;&gt;<br />
Email: &lt;input id=&#8221;txt_E&#8221; name=&#8221;txt_E&#8221; type=&#8221;text&#8221; size=&#8221;30&#8243; onkeydown=&#8221;valida_E()&#8221; /&gt;<br />
&lt;/p&gt;</p>
<p>&lt;p style=&#8221;display:none&#8221; id=&#8221;mensaje&#8221;&gt;<br />
Tu mensaje<br />
&lt;br&gt;&lt;br&gt;<br />
&lt;textarea cols=&#8221;50&#8243; rows=&#8221;10&#8243; id=&#8221;area_mensaje&#8221; name=&#8221;area_mensaje&#8221; onkeydown=&#8221;valida_M()&#8221;&gt;&lt;/textarea&gt;<br />
&lt;/p&gt;</p>
<p>&lt;p style=&#8221;display:none&#8221; id=&#8221;envia&#8221;&gt;<br />
&lt;a href=&#8221;#&#8221; title=&#8221;Enviar Mensaje&#8221; onclick=&#8221;envia()&#8221;&gt;&lt;img src=&#8221;images/enviar.png&#8221; alt=&#8221;Enviar&#8221;/&gt;&lt;/a&gt;<br />
&lt;/p&gt;</p>
<p>&lt;p style=&#8221;display:none;background-color:red;&#8221; id=&#8221;error&#8221;&gt;<br />
El campo no puede estar vacío. Por favor, introduce el dato solicitado<br />
&lt;/p&gt;</p>
<p>&lt;p style=&#8221;display:none;background-color:red;&#8221; id=&#8221;error_mail&#8221;&gt;<br />
Debes introducir una dirección de correo válida<br />
&lt;/p&gt;</p>
<p>&lt;/form&gt;<br />
&lt;/div&gt;</p>
<p>&lt;div id=&#8221;resultado&#8221;&gt;<br />
&lt;/div&gt;</p>
<p>&lt;div id=&#8221;fondo&#8221;&gt;<br />
&lt;a href=&#8221;http://ramoncastro.es&#8221; title=&#8221;La web de Ramón Castro&#8221;&gt;&lt;img src=&#8221;http://ramoncastro.es/wp-content/themes/minid/images/logotipo.png&#8221; alt=&#8221;La web de Ramón Castro&#8221;/&gt;&lt;/a&gt;<br />
&lt;/div&gt;</p>
<p>&lt;/body&gt;<br />
&lt;/html&gt;<br />
<strong>envia.php</strong></p>
<p style="background-color:#cccccc;"> <code><br />
&lt;?php</code>/*<br />
This file is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or<br />
(at your option) any later version.</p>
<p>You cand find a copy of the GNU General Public License in the &#8220;license&#8221; directory.</p>
<p>You should have received a copy of the GNU General Public License along with this script; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA.</p>
<p>Ramon Castro (http://ramoncastro.es)</p>
<p>Uso de librerías AJAX:</p>
<p>Prototype -&gt; (http://www.prototypejs.org/)</p>
<p>Script.aculo.us -&gt; (http://script.aculo.us/)</p>
<p>Icono: Proyecto TANGO (http://tango.freedesktop.org/Tango_Icon_Gallery)</p>
<p>*/</p>
<p>$nombre = $_POST['nombre'];<br />
$email = $_POST['email'];<br />
$mensaje = $_POST['mensaje'];</p>
<p>$mail = &#8216;ramoncastroperez@yahoo.es&#8217;;<br />
$asunto = &#8216;Mensaje de la web&#8217;;<br />
$momento = date(&#8216;d/m/y H:i a&#8217;);<br />
$contenido = &#8221;.$nombre.&#8217;, con mail &#8216;.$email.&#8217; ha enviado el &#8216;.$momento.&#8217; el siguiente mensaje:</p>
<p>&#8216;.$mensaje.&#8221;;</p>
<p>//avisamos<br />
echo &#8216;&lt;div id=&#8221;resultado&#8221;&gt;&#8217;;<br />
if(mail($mail,$asunto,$contenido))<br />
{<br />
$aviso = &#8216;Tu mensaje ha sido enviado. Gracias&#8217;;<br />
echo $aviso;<br />
}<br />
else<br />
{<br />
$aviso = &#8216;Tu mensaje no ha podido ser enviado. Inténtalo más tarde. Gracias&#8217;;<br />
echo $aviso;<br />
}</p>
<p>?&gt;<br />
Como véis, no he añadido nada nuevo al script PHP que envía el mail (queda pendiente: cambiar la codificación de la información, que llega al mail con las tildes diabólicas, incorporar información sobre el navegador, SO e IP).</p>
<p>Podéis ver el ejemplo en mi web, <a href="http://ramoncastro.es/contacto.php" target="_blank">aquí</a>.</p>
<p>Saludos</p>
<img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/pehachepe.wordpress.com/18/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/pehachepe.wordpress.com/18/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/pehachepe.wordpress.com/18/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/pehachepe.wordpress.com/18/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/pehachepe.wordpress.com/18/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/pehachepe.wordpress.com/18/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/pehachepe.wordpress.com/18/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/pehachepe.wordpress.com/18/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/pehachepe.wordpress.com/18/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/pehachepe.wordpress.com/18/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/pehachepe.wordpress.com/18/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/pehachepe.wordpress.com/18/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=pehachepe.wordpress.com&blog=886399&post=18&subd=pehachepe&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://pehachepe.wordpress.com/2007/03/17/sencillo-y-primitivo-formulario-de-contacto/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/bbd6c58f71d90e42aacbc179ec6a61c4?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">ramoncastro</media:title>
		</media:content>

		<media:content url="http://static.flickr.com/182/396655169_33868a32b2_m.jpg" medium="image">
			<media:title type="html">Email</media:title>
		</media:content>
	</item>
		<item>
		<title>Usando arrays en Ajax.InPlaceCollection desde PHP</title>
		<link>http://pehachepe.wordpress.com/2007/03/17/usando-arrays-en-ajaxinplacecollection-desde-php/</link>
		<comments>http://pehachepe.wordpress.com/2007/03/17/usando-arrays-en-ajaxinplacecollection-desde-php/#comments</comments>
		<pubDate>Sat, 17 Mar 2007 21:47:04 +0000</pubDate>
		<dc:creator>Ramón Castro</dc:creator>
				<category><![CDATA[AJAX]]></category>

		<guid isPermaLink="false">http://pehachepe.wordpress.com/2007/03/17/usando-arrays-en-ajaxinplacecollection-desde-php/</guid>
		<description><![CDATA[
En ocasiones nos puede interesar editar un texto y que aparezca una lista &#8220;select&#8221; con diversas opciones. Si éstas se hallan predefinidas, no hay mayor problema que seguir los ejemplos que hay en el wiki de Script.aculo.us pero si las opciones las recogemos de una base de datos o de un fichero, tendremos un &#8220;array&#8221; [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=pehachepe.wordpress.com&blog=886399&post=17&subd=pehachepe&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p style="text-align:center;"><img src="http://static.flickr.com/122/283328103_1c5e78e747_m.jpg" alt="Array" style="border:1px solid black;" /></p>
<p>En ocasiones nos puede interesar editar un texto y que aparezca una lista &#8220;select&#8221; con diversas opciones. Si éstas se hallan predefinidas, no hay mayor problema que seguir los ejemplos que hay en el wiki de Script.aculo.us pero si las opciones las recogemos de una base de datos o de un fichero, tendremos un &#8220;array&#8221; que podemos pasar fácilmente al select de la siguiente forma.</p>
<p>Esta vez lo he puesto todo en el mismo archivo y no hay base de datos detrás (es fácil venir de una consulta y mandar el resultado a otro script; mira posts anteriores en este mismo blog).</p>
<p>Ahí va el index.php:</p>
<p style="background:#cccccc none repeat scroll 0 50%;"> <code><br />
&lt;?php<br />
/*<br />
//Script PHP-AJAX distribuido con la intención de que sea útil/<br />
//Usa las librerías Prototype y Scriptaculous//////////////////<br />
//Ramón Castro Pérez (http://ramoncastro.es/PeHachePe/)////////<br />
//Licencia GPL/////////////////////////////////////////////////<br />
//Conserva esta nota///////////////////////////////////////////<br />
*/</code>//tenemos un array que puede venir de una consulta o de un fichero de texto o de donde sea, vamos<br />
$array = array(&#8216;Esther&#8217;,'Elena&#8217;,'Ramón&#8217;,'Montse&#8217;);</p>
<p>?&gt;</p>
<p>&lt;!DOCTYPE html PUBLIC &#8220;-//W3C//DTD XHTML 1.0 Transitional//EN&#8221; &#8220;http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd&#8221;&gt;<br />
&lt;html xmlns=&#8221;http://www.w3.org/1999/xhtml&#8221;&gt;<br />
&lt;head&gt;<br />
&lt;meta http-equiv=&#8221;Content-Type&#8221; content=&#8221;text/html; charset=iso-8859-1&#8243; /&gt;<br />
&lt;title&gt;Principal&lt;/title&gt;<br />
&lt;script src=&#8221;js/prototype.js&#8221; type=&#8221;text/javascript&#8221;&gt;&lt;/script&gt;<br />
&lt;script src=&#8221;js/scriptaculous.js&#8221; type=&#8221;text/javascript&#8221;&gt;&lt;/script&gt;<br />
&lt;/head&gt;<br />
&lt;body&gt;</p>
<p>&lt;?php</p>
<p>//recojo el valor si ya he enviado la opción<br />
$valor = $_POST['value'];<br />
if(isset($valor))<br />
{<br />
echo &#8216;&lt;h1 style=&#8221;text-align:center&#8221;&gt;Has elegido a &#8216;.$valor.&#8217;&lt;/h1&gt;&#8217;;<br />
}<br />
else//si acabo de llegar a la página<br />
{<br />
//tenemos el párrafo de texto editable<br />
echo &#8216;&lt;p id=&#8221;edita&#8221;&gt;Elige tutor/a&lt;/p&gt;&#8217;;</p>
<p>//Extraemos los valores del array y los pasamos a una cadena<br />
$precadena = implode(&#8220;&#8216;,&#8217;&#8221;,$array);<br />
//Colocamos las comillas primera y final en la cadena<br />
$cadena = &#8220;&#8216;&#8221;.$precadena.&#8221;&#8216;&#8221;;</p>
<p>//montamos el script donde pasamos el resultado a la página que procesa<br />
//en el ejemplo ésta misma pero no tiene que serlo<br />
//OJO, en la matriz Collection pasamos la variable $cadena</p>
<p>?&gt;</p>
<p>&lt;script type=&#8221;text/javascript&#8221;&gt;<br />
new Ajax.InPlaceCollectionEditor(&#8216;edita&#8217;,'index.php&#8217;,{collection: [&lt;?php echo $cadena; ?&gt;], ajaxOptions: {method: &#8216;post&#8217;}});<br />
&lt;/script&gt;</p>
<p>&lt;?php</p>
<p>}</p>
<p>echo &#8216;<br />
&lt;/body&gt;<br />
&lt;/html&gt;<br />
&#8216;;</p>
<p>?&gt;</p>
<p>Las librerías usadas las puedes encontrar en http://script.aculo.us en la sección Downloads<br />
Si copias y pegas el index.php, cambia las comillas inclinadas por las normales en tu editor de texto</p>
<p>Saludos</p>
<p>[tag]ajax, placecollection, scriptaculous, array, php[/tag]</p>
<img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/pehachepe.wordpress.com/17/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/pehachepe.wordpress.com/17/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/pehachepe.wordpress.com/17/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/pehachepe.wordpress.com/17/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/pehachepe.wordpress.com/17/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/pehachepe.wordpress.com/17/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/pehachepe.wordpress.com/17/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/pehachepe.wordpress.com/17/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/pehachepe.wordpress.com/17/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/pehachepe.wordpress.com/17/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/pehachepe.wordpress.com/17/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/pehachepe.wordpress.com/17/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=pehachepe.wordpress.com&blog=886399&post=17&subd=pehachepe&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://pehachepe.wordpress.com/2007/03/17/usando-arrays-en-ajaxinplacecollection-desde-php/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/bbd6c58f71d90e42aacbc179ec6a61c4?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">ramoncastro</media:title>
		</media:content>

		<media:content url="http://static.flickr.com/122/283328103_1c5e78e747_m.jpg" medium="image">
			<media:title type="html">Array</media:title>
		</media:content>
	</item>
		<item>
		<title>LiveGrid (con AJAX ¿quién necesita aplicaciones de escritorio?) ¡Impresionante!</title>
		<link>http://pehachepe.wordpress.com/2007/03/17/livegrid-con-ajax-%c2%bfquien-necesita-aplicaciones-de-escritorio-%c2%a1impresionante/</link>
		<comments>http://pehachepe.wordpress.com/2007/03/17/livegrid-con-ajax-%c2%bfquien-necesita-aplicaciones-de-escritorio-%c2%a1impresionante/#comments</comments>
		<pubDate>Sat, 17 Mar 2007 21:46:12 +0000</pubDate>
		<dc:creator>Ramón Castro</dc:creator>
				<category><![CDATA[AJAX]]></category>

		<guid isPermaLink="false">http://pehachepe.wordpress.com/2007/03/17/livegrid-con-ajax-%c2%bfquien-necesita-aplicaciones-de-escritorio-%c2%a1impresionante/</guid>
		<description><![CDATA[
Sigo impresionado con la gente de Script.aculo.us, Prototype y Rico. Lo último que he estado mirando es el Livegrid, un artilugio fascinante para navegar entre registros en nuestra aplicación web. Eso sí, he podido acercarme tímidamente al código gracias al excelente tutorial (para novat@s como yo) de Jerome Sadou donde explica cómo usar la librería [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=pehachepe.wordpress.com&blog=886399&post=16&subd=pehachepe&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><div style="text-align:center;"><img src="http://www.versioncero.com/images/111.jpg" alt="rico-livegrid" /></div>
<p>Sigo impresionado con la gente de <a href="http://script.aculo.us/" target="_blank">Script.aculo.us</a>, <a href="http://www.prototypejs.org/" target="_blank">Prototype</a> y <a href="http://openrico.org/" target="_blank">Rico</a>. Lo último que he estado mirando es el <a href="http://openrico.org/rico/livegrid.page" target="_blank">Livegrid</a>, un artilugio fascinante para navegar entre registros en nuestra aplicación web. Eso sí, he podido acercarme tímidamente al código gracias al excelente tutorial (para novat@s como yo) de <a href="http://jerome.sadou.free.fr/grid/" target="_blank">Jerome Sadou</a> donde explica cómo usar la librería Rico con PHP en el lado del servidor.</p>
<p>El tutorial está en pdf pero viene &#8220;mascadito&#8221;, para copiar-pegar y probar en  local. Además, el autor ha añadido la funcionalidad para ordenar columnas en sentidos ascendente y descendente. El tutorial lo dice todo, solamente copiar y pegar y funciona. </p>
<p>Una sola cosa que me ha dado algún quebradero de cabeza. En el <em>xml_maker.php</em> hay un <em>switch</em> donde los <em>case</em> son los encabezados de la tabla. A mí me ha funcionado con los <em>case</em> en minúsculas, aunque en el encabezado vayan con la primera inicial en mayúscula. </p>
<p>Probadlo, es genial. </p>
<p>Saludos</p>
<p>[tag]livegrid, rico, ajax, php[/tag]</p>
<img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/pehachepe.wordpress.com/16/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/pehachepe.wordpress.com/16/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/pehachepe.wordpress.com/16/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/pehachepe.wordpress.com/16/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/pehachepe.wordpress.com/16/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/pehachepe.wordpress.com/16/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/pehachepe.wordpress.com/16/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/pehachepe.wordpress.com/16/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/pehachepe.wordpress.com/16/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/pehachepe.wordpress.com/16/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/pehachepe.wordpress.com/16/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/pehachepe.wordpress.com/16/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=pehachepe.wordpress.com&blog=886399&post=16&subd=pehachepe&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://pehachepe.wordpress.com/2007/03/17/livegrid-con-ajax-%c2%bfquien-necesita-aplicaciones-de-escritorio-%c2%a1impresionante/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/bbd6c58f71d90e42aacbc179ec6a61c4?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">ramoncastro</media:title>
		</media:content>

		<media:content url="http://www.versioncero.com/images/111.jpg" medium="image">
			<media:title type="html">rico-livegrid</media:title>
		</media:content>
	</item>
		<item>
		<title>Edición en línea (ya sabes: AJAX y &#8230; del lado del servidor, PHP)</title>
		<link>http://pehachepe.wordpress.com/2007/03/17/edicion-en-linea-ya-sabes-ajax-y-del-lado-del-servidor-php/</link>
		<comments>http://pehachepe.wordpress.com/2007/03/17/edicion-en-linea-ya-sabes-ajax-y-del-lado-del-servidor-php/#comments</comments>
		<pubDate>Sat, 17 Mar 2007 21:43:21 +0000</pubDate>
		<dc:creator>Ramón Castro</dc:creator>
				<category><![CDATA[AJAX]]></category>

		<guid isPermaLink="false">http://pehachepe.wordpress.com/2007/03/17/edicion-en-linea-ya-sabes-ajax-y-del-lado-del-servidor-php/</guid>
		<description><![CDATA[
Poco a poco voy escrutando las extraordinarias librerías de Script.aculo.us. Le toca ahora a la edición en línea (tema que aprovecha mucho mejor Mario Debian con su Inline Editor trabajado sobre éstas), sin duda uno de las técnicas que mejores resultados pueden darnos si detrás del formulario contamos con una base de datos y un [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=pehachepe.wordpress.com&blog=886399&post=15&subd=pehachepe&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p style="text-align:center;"><img src="http://static.flickr.com/131/393247615_766adc4ebf_m.jpg" alt="Editor" /></p>
<p>Poco a poco voy escrutando las extraordinarias librerías de Script.aculo.us. Le toca ahora a la edición en línea (tema que aprovecha mucho mejor Mario Debian con su Inline Editor trabajado sobre éstas), sin duda uno de las técnicas que mejores resultados pueden darnos si detrás del formulario contamos con una base de datos y un intérprete (PHP, por ejemplo).</p>
<p>Así que me he puesto a seguir la documentación del wiki y ¡funciona!, así que os pego aquí el código.</p>
<p>Archivos:</p>
<p><em>- index.php &#8211;&gt;</em> Muestra una tabla con datos sobre empleados obtenida al consultar una base de datos usando para ello un bucle for. Las celdas que serán editables están identificadas con un nombre corto más el valor de la iteración corriente. Al final de la página llamamos a la librería script.aculo.us para que, al hacer clic en el contenido, convierta la celda en un cuadro de texto (hay muchas más opciones, digno de mirar en la documentación) y aparezca un botón tipo &#8220;submit&#8221; para enviar la orden (sin necesidad de recarga de la página: esto es AJAX) al script:</p>
<p><em>- guarda.php &#8211;&gt;</em> Recibe el valor de cada iteración y si la variable no está vacía (es decir, hemos editado y enviado) actualiza el registro en la base de datos y lo muestra. Así de sencillo.</p>
<p><em>- index.css &#8211;&gt;</em> Se encarga de los estilos</p>
<p>Las posibilidades son amplias: cajas de texto, áreas de texto, select, etcétera &#8230;</p>
<p>El código:</p>
<p><strong>index.php</strong></p>
<p style="background-color:#cccccc;"> <code><br />
&lt;?php<br />
/*<br />
This file is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or<br />
(at your option) any later version.</code>You cand find a copy of the GNU General Public License in the &#8220;license&#8221; directory.</p>
<p>You should have received a copy of the GNU General Public License along with SIESTTA; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA.</p>
<p>Ramon Castro (http://ramoncastro.es)</p>
<p>Uso de librerías AJAX:</p>
<p>Prototype -&gt; (http://www.prototypejs.org/)</p>
<p>Script.aculo.us -&gt; (http://script.aculo.us/)</p>
<p>*/</p>
<p>?&gt;</p>
<p>&lt;!DOCTYPE html PUBLIC &#8220;-//W3C//DTD XHTML 1.0 Transitional//EN&#8221; &#8220;http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd&#8221;&gt;<br />
&lt;html xmlns=&#8221;http://www.w3.org/1999/xhtml&#8221;&gt;<br />
&lt;head&gt;<br />
&lt;meta http-equiv=&#8221;Content-Type&#8221; content=&#8221;text/html; charset=iso-8859-1&#8243; /&gt;<br />
&lt;title&gt;Editando en línea con AJAX&lt;/title&gt;<br />
&lt;link href=&#8221;index.css&#8221; rel=&#8221;stylesheet&#8221; type=&#8221;text/css&#8221; /&gt;<br />
&lt;script src=&#8221;js/prototype.js&#8221; type=&#8221;text/javascript&#8221;&gt;&lt;/script&gt;<br />
&lt;script src=&#8221;js/scriptaculous.js&#8221; type=&#8221;text/javascript&#8221;&gt;&lt;/script&gt;<br />
&lt;/head&gt;<br />
&lt;body&gt;</p>
<p>&lt;?php</p>
<p>//presentamos título</p>
<p>echo &#8216;&lt;h1&gt;Emplead@s de la empresa&lt;/h1&gt;&#8217;;</p>
<p>//presentamos caja</p>
<p>echo &#8216;&lt;div id=&#8221;caja&#8221;&gt;&#8217;;<br />
echo &#8216;&lt;b class=&#8221;rtop&#8221;&gt;&lt;b class=&#8221;r1&#8243;&gt;&lt;/b&gt;&lt;b class=&#8221;r2&#8243;&gt;&lt;/b&gt;&lt;b class=&#8221;r3&#8243;&gt;&lt;/b&gt;&lt;b class=&#8221;r4&#8243;&gt;&lt;/b&gt;&lt;/b&gt;&#8217;;</p>
<p>//la tabla</p>
<p>echo &#8216;&lt;table&gt;&#8217;;</p>
<p>echo &#8216;&lt;tr id=&#8221;encab&#8221;&gt;&#8217;;<br />
echo &#8216;&lt;td&gt;Id&lt;/td&gt;&#8217;;<br />
echo &#8216;&lt;td&gt;Emplead@&lt;/td&gt;&#8217;;<br />
echo &#8216;&lt;td&gt;Cargo&lt;/td&gt;&#8217;;<br />
echo &#8216;&lt;/tr&gt;&#8217;;</p>
<p>//conectamos con mysql y seleccionamos los datos</p>
<p>$con_mysql=mysql_connect(&#8216;localhost&#8217;,&#8217;scripts&#8217;,&#8217;scripts&#8217;);</p>
<p>if (!$con_mysql) {echo &#8216;No se ha podido encontrar el servidor de datos&#8217;;exit;}</p>
<p>mysql_select_db(&#8217;scripts&#8217;);</p>
<p>$select = mysql_query(&#8220;select * from empleados&#8221;);</p>
<p>//montamos bucle</p>
<p>for($a = 0; $a &lt; (mysql_num_rows($select)); $a++)</p>
<p>{<br />
$reg = mysql_fetch_array($select);<br />
echo &#8216;&lt;tr&gt;&#8217;;<br />
echo &#8216;&lt;td&gt;&#8217;;<br />
echo $reg['id'];<br />
echo &#8216;&lt;/td&gt;&#8217;;<br />
echo &#8216;&lt;td&gt;&lt;p id=&#8221;emp-&#8217;.$a.&#8217;&#8221;&gt;&#8217;;<br />
echo $reg['empleado'];<br />
echo &#8216;&lt;/p&gt;&lt;/td&gt;&#8217;;</p>
<p>echo &#8216;&lt;td&gt;&lt;p id=&#8221;car-&#8217;.$a.&#8217;&#8221;&gt;&#8217;;<br />
echo $reg['cargo'];<br />
echo &#8216;&lt;/p&gt;&lt;/td&gt;&#8217;;<br />
echo &#8216;&lt;/tr&gt;&#8217;;<br />
echo &#8216;<br />
&lt;script type=&#8221;text/javascript&#8221;&gt;<br />
new Ajax.InPlaceEditor(\&#8217;emp-&#8217;.$a.&#8217;\', \&#8217;guarda.php\&#8217;,{method: \&#8217;post\&#8217;, paramName: \&#8217;emp-&#8217;.$a.&#8217;\', size:\&#8217;15\&#8217;});<br />
&lt;/script&gt;<br />
&#8216;;<br />
echo &#8216;<br />
&lt;script type=&#8221;text/javascript&#8221;&gt;<br />
new Ajax.InPlaceEditor(\&#8217;car-&#8217;.$a.&#8217;\', \&#8217;guarda.php\&#8217;,{method: \&#8217;post\&#8217;, paramName: \&#8217;car-&#8217;.$a.&#8217;\', size:\&#8217;15\&#8217;});<br />
&lt;/script&gt;<br />
&#8216;;</p>
<p>}</p>
<p>echo &#8216;&lt;table&gt;&#8217;;</p>
<p>echo &#8216;&lt;b class=&#8221;rbottom&#8221;&gt;&lt;b class=&#8221;r4&#8243;&gt;&lt;/b&gt;&lt;b class=&#8221;r3&#8243;&gt;&lt;/b&gt;&lt;b class=&#8221;r2&#8243;&gt;&lt;/b&gt;&lt;b class=&#8221;r1&#8243;&gt;&lt;/b&gt;&lt;/b&gt;&#8217;;<br />
echo &#8216;&lt;/div&gt;&#8217;;</p>
<p>?&gt;</p>
<p>&lt;/body&gt;<br />
&lt;/html&gt;</p>
<p><strong>guarda.php</strong></p>
<p style="background-color:#cccccc;"> <code><br />
&lt;?php</code>/*<br />
This file is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or<br />
(at your option) any later version.</p>
<p>You cand find a copy of the GNU General Public License in the &#8220;license&#8221; directory.</p>
<p>You should have received a copy of the GNU General Public License along with SIESTTA; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA.</p>
<p>Ramon Castro (http://ramoncastro.es)</p>
<p>Uso de librerías AJAX:</p>
<p>Prototype -&gt; (http://www.prototypejs.org/)</p>
<p>Script.aculo.us -&gt; (http://script.aculo.us/)</p>
<p>*/</p>
<p>//conectamos con mysql, cargamos variables y actualizamos</p>
<p>$con_mysql=mysql_connect(&#8216;localhost&#8217;,&#8217;scripts&#8217;,&#8217;scripts&#8217;);</p>
<p>if (!$con_mysql) {echo &#8216;No se ha podido encontrar el servidor de datos&#8217;;exit;}</p>
<p>mysql_select_db(&#8217;scripts&#8217;);</p>
<p>$select = mysql_query(&#8220;select * from empleados&#8221;);</p>
<p>for($a=0;$a&lt;(mysql_num_rows($select));$a++)</p>
<p>{<br />
$reg = mysql_fetch_array($select);<br />
$id = $reg['id'];<br />
$emp = $_POST['emp-'.$a.''];<br />
$car = $_POST['car-'.$a.''];</p>
<p>//si se cambia empleado actualizamos<br />
if(isset($emp))<br />
{<br />
$update = mysql_query(&#8220;update empleados set empleado=&#8217;$emp&#8217; where id=&#8217;$id&#8217;&#8221;);<br />
//muestro el texto<br />
echo $emp;<br />
}<br />
//si se cambia empleado actualizamos<br />
if(isset($car))<br />
{<br />
$id = $reg['id'];<br />
$update = mysql_query(&#8220;update empleados set cargo=&#8217;$car&#8217; where id=&#8217;$id&#8217;&#8221;);<br />
//muestro el texto<br />
echo $car;<br />
}</p>
<p>}</p>
<p>?&gt;</p>
<p><strong>index.css</strong></p>
<p style="background-color:#cccccc;"> <code><br />
/*<br />
This file is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or<br />
(at your option) any later version.</code>You cand find a copy of the GNU General Public License in the &#8220;license&#8221; directory.</p>
<p>You should have received a copy of the GNU General Public License along with SIESTTA; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA.</p>
<p>Ramon Castro (http://ramoncastro.es)</p>
<p>*/</p>
<p>*{<br />
margin:0;</p>
<p>padding:0;<br />
}<br />
a {text-decoration:none;}<br />
a:link, a:visited{color:#444;}<br />
a:hover, a:active{color:white;}<br />
input{<br />
border:1px solid #444;<br />
margin:4px;<br />
font-size:10px;<br />
}<br />
input:hover{<br />
border:1px solid #0021a5;<br />
}</p>
<p>body{</p>
<p>font-family: Andale Mono;</p>
<p>font-size:12px;<br />
}<br />
h1{<br />
position:relative;<br />
text-align:center;<br />
background:transparent;<br />
top:110px;<br />
width:40%;<br />
height:20px;<br />
margin:auto;<br />
}<br />
div#caja{<br />
position:relative;<br />
margin:auto;<br />
width:50%;<br />
top:150px;<br />
background:#199eee;<br />
}<br />
#caja table{<br />
margin:auto;<br />
padding: 20px;<br />
}<br />
#caja table tr#encab{<br />
font-weight:bold;<br />
text-align:center;<br />
background:white;<br />
}<br />
#caja table td{<br />
padding:4px;<br />
}<br />
b.rtop, b.rbottom{<br />
display:block;<br />
background: #FFF;<br />
}<br />
b.rtop b, b.rbottom b{<br />
display:block;<br />
height: 1px;<br />
overflow: hidden;<br />
background: #199eee;<br />
}<br />
b.r1{<br />
margin: 0 5px<br />
}<br />
b.r2{<br />
margin: 0 3px;<br />
}<br />
b.r3{<br />
margin: 0 2px;<br />
}<br />
b.rtop b.r4, b.rbottom b.r4{<br />
margin: 0 1px;<br />
height: 2px;<br />
}<br />
.inplaceeditor-saving { background: url(../imgs/spinner.gif) bottom right no-repeat; }</p>
<p>Saludos</p>
<p>[tag]ajax, editor, php[/tag]</p>
<img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/pehachepe.wordpress.com/15/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/pehachepe.wordpress.com/15/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/pehachepe.wordpress.com/15/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/pehachepe.wordpress.com/15/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/pehachepe.wordpress.com/15/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/pehachepe.wordpress.com/15/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/pehachepe.wordpress.com/15/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/pehachepe.wordpress.com/15/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/pehachepe.wordpress.com/15/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/pehachepe.wordpress.com/15/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/pehachepe.wordpress.com/15/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/pehachepe.wordpress.com/15/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=pehachepe.wordpress.com&blog=886399&post=15&subd=pehachepe&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://pehachepe.wordpress.com/2007/03/17/edicion-en-linea-ya-sabes-ajax-y-del-lado-del-servidor-php/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/bbd6c58f71d90e42aacbc179ec6a61c4?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">ramoncastro</media:title>
		</media:content>

		<media:content url="http://static.flickr.com/131/393247615_766adc4ebf_m.jpg" medium="image">
			<media:title type="html">Editor</media:title>
		</media:content>
	</item>
		<item>
		<title>Autocompletar usando Script.aculo.us, PHP y MySQL</title>
		<link>http://pehachepe.wordpress.com/2007/03/17/autocompletar-usando-scriptaculous-php-y-mysql/</link>
		<comments>http://pehachepe.wordpress.com/2007/03/17/autocompletar-usando-scriptaculous-php-y-mysql/#comments</comments>
		<pubDate>Sat, 17 Mar 2007 21:42:05 +0000</pubDate>
		<dc:creator>Ramón Castro</dc:creator>
				<category><![CDATA[AJAX]]></category>

		<guid isPermaLink="false">http://pehachepe.wordpress.com/2007/03/17/autocompletar-usando-scriptaculous-php-y-mysql/</guid>
		<description><![CDATA[
Sigo aprendiendo (muy poco a poco) y disfrutando de AJAX y más concretamente de las librerías Script.aculo.us y Prototype (espectaculares). Una de las cosas que quería implementar y probar en mis scripts era la posibilidad de ofrecer la cualidad Autocompletar en los cuadros de texto (al estilo de Google Suggest). Así que usando la documentación [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=pehachepe.wordpress.com&blog=886399&post=14&subd=pehachepe&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p style="text-align:center;"><img src="http://www.intrafitt.com/images/spinning.gif" alt="Spinning" /></p>
<p>Sigo aprendiendo (muy poco a poco) y disfrutando de AJAX y más concretamente de las librerías <a href="http://script.aculo.us/" target="_blank">Script.aculo.us</a> y <a href="http://www.prototypejs.org/" target="_blank">Prototype</a> (espectaculares). Una de las cosas que quería implementar y probar en mis scripts era la posibilidad de ofrecer la cualidad <em>Autocompletar</em> en los cuadros de texto (al estilo de <a href="http://www.google.com/webhp?complete=1&amp;hl=en" target="_blank">Google Suggest</a>). Así que usando la documentación del <a href="http://wiki.script.aculo.us/scriptaculous/" target="_blank">wiki</a> de Script.aculo.us he podido realizar un formulario donde puedes buscar al alumnado por el nombre. Tras escribir la primera letra, el script ya comienza a sugerir resultados, resultados que provienen de una base de datos MySQL y que un script PHP se encarga de consultar y listar. El esquema de funcionamiento es el siguiente:</p>
<p><em>1.- Se carga la página con el formulario (se cargan entonces las librerías script.aculo.us y prototype). En el formulario se presenta una caja de texto donde el cliente introducirá su búsqueda. Dentro del formulario hay un script javascript que llama a las librerías para que genere el proceso de autorrelleno. Entre otros parámetros, se pasan el número de letras mínimo que el cliente introducirá para que se vayan ofreciendo resultados, el url del script php, el id de la caja de texto, el id del div donde se presentará la lista de sugerencias, etcétera.</em></p>
<p><em>2.- Las librerías mencionadas llaman y pasan el valor escrito por el usuario al script php que lo recoge, lo limpia (con trim), conecta con MySQL, realiza la consulta (palabras parecidas) y lista los resultados.</em></p>
<p><em>3.- El producto de la consulta se pasa al div y éste se presenta. Finalmente, cuando el usuario selecciona de la lista un valor, éste se inserta de manera automática en la caja de texto.</em></p>
<p>Veamos el código:</p>
<p><strong>Index.html:</strong></p>
<p style="background-color:#cccccc;"> <code><br />
&lt;!--<br />
/*<br />
This file is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or<br />
(at your option) any later version.</code>You cand find a copy of the GNU General Public License in the &#8220;license&#8221; directory.</p>
<p>You should have received a copy of the GNU General Public License along with SIESTTA; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA.</p>
<p>Ramon Castro (http://ramoncastro.es)</p>
<p>Iconos: Proyecto Tango (http://tango.freedesktop.org/Tango_Desktop_Project)</p>
<p>Uso de librerías AJAX:</p>
<p>Prototype -&gt; (http://www.prototypejs.org/)</p>
<p>Script.aculo.us -&gt; (http://script.aculo.us/)</p>
<p>*/</p>
<p>&#8211;&gt;<br />
&lt;!DOCTYPE html PUBLIC &#8220;-//W3C//DTD XHTML 1.0 Transitional//EN&#8221; &#8220;http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd&#8221;&gt;<br />
&lt;html xmlns=&#8221;http://www.w3.org/1999/xhtml&#8221;&gt;<br />
&lt;head&gt;<br />
&lt;meta http-equiv=&#8221;Content-Type&#8221; content=&#8221;text/html; charset=iso-8859-1&#8243; /&gt;<br />
&lt;title&gt;Principal&lt;/title&gt;<br />
&lt;link href=&#8221;index.css&#8221; rel=&#8221;stylesheet&#8221; type=&#8221;text/css&#8221; /&gt;<br />
&lt;script src=&#8221;js/prototype.js&#8221; type=&#8221;text/javascript&#8221;&gt;&lt;/script&gt;<br />
&lt;script src=&#8221;js/scriptaculous.js&#8221; type=&#8221;text/javascript&#8221;&gt;&lt;/script&gt;<br />
&lt;/head&gt;<br />
&lt;body&gt;<br />
&lt;div id=&#8221;cuerpo&#8221;&gt;<br />
&lt;b class=&#8221;rtop&#8221;&gt;&lt;b class=&#8221;r1&#8243;&gt;&lt;/b&gt;&lt;b class=&#8221;r2&#8243;&gt;&lt;/b&gt;&lt;b class=&#8221;r3&#8243;&gt;&lt;/b&gt;&lt;b class=&#8221;r4&#8243;&gt;&lt;/b&gt;&lt;/b&gt;<br />
&lt;table&gt;<br />
&lt;tr&gt;<br />
&lt;td&gt;<br />
&lt;img src=&#8221;images/alum.png&#8221; alt=&#8221;Alumn@s&#8221; /&gt;<br />
&lt;/td&gt;<br />
&lt;td&gt;<br />
&lt;input type=&#8221;text&#8221; id=&#8221;autorelleno&#8221; name=&#8221;texto_auto&#8221;/&gt;<br />
&lt;span id=&#8221;spinner&#8221; style=&#8221;display: none&#8221;&gt;<br />
&lt;img src=&#8221;images/spinner.gif&#8221; alt=&#8221;Consultando&#8230;&#8221; /&gt;<br />
&lt;/span&gt;<br />
&lt;div id=&#8221;lista_opciones&#8221; class=&#8221;autorelleno&#8221;&gt;<br />
&lt;/div&gt;<br />
&lt;script&gt;<br />
new Ajax.Autocompleter(&#8220;autorelleno&#8221;, &#8220;lista_opciones&#8221;, &#8220;lista.php&#8221;, {method: &#8220;post&#8221;, paramName: &#8220;value&#8221;, minChars: 1, indicator: &#8220;spinner&#8221;});<br />
&lt;/script&gt;<br />
&lt;/td&gt;<br />
&lt;td&gt;<br />
Búsqueda de Alumn@s por nombre<br />
&lt;/td&gt;<br />
&lt;/tr&gt;<br />
&lt;/table&gt;<br />
&lt;b class=&#8221;rbottom&#8221;&gt;&lt;b class=&#8221;r4&#8243;&gt;&lt;/b&gt;&lt;b class=&#8221;r3&#8243;&gt;&lt;/b&gt;&lt;b class=&#8221;r2&#8243;&gt;&lt;/b&gt;&lt;b class=&#8221;r1&#8243;&gt;&lt;/b&gt;&lt;/b&gt;<br />
&lt;/div&gt;<br />
&lt;/body&gt;<br />
&lt;/html&gt;</p>
<p><strong>Index.css:</strong></p>
<p style="background-color:#cccccc;"> <code><br />
/*Fuentes</code>Autorrelleno &#8211;&gt; http://script.aculo.us</p>
<p>Esquinas redondeadas &#8211;&gt; http://usalo.es (http://usalo.es/53/limar-las-esquinas-con-css/)</p>
<p>*/</p>
<p>div.autorelleno {<br />
position:absolute;<br />
width:250px;<br />
background-color:white;<br />
border:1px solid #888;<br />
margin:0px;<br />
padding:0px;<br />
}<br />
div.autorelleno ul {<br />
list-style-type:none;<br />
margin:0px;<br />
padding:0px;<br />
}<br />
div.autorelleno ul li.selected { background-color: #ffb;}<br />
div.autorelleno ul li {<br />
list-style-type:none;<br />
display:block;<br />
margin:0;<br />
padding:2px;<br />
height:18px;<br />
cursor:pointer;<br />
}<br />
#cuerpo{<br />
position:absolute;<br />
width:37%;<br />
top: 25%;<br />
left:30%;<br />
background:#F0EDE0;<br />
}<br />
b.rtop, b.rbottom{<br />
display:block;<br />
background: #FFF<br />
}<br />
b.rtop b, b.rbottom b{<br />
display:block;<br />
height: 1px;<br />
overflow: hidden;<br />
background: #F0EDE0<br />
}<br />
b.r1{<br />
margin: 0 5px<br />
}<br />
b.r2{<br />
margin: 0 3px<br />
}<br />
b.r3{<br />
margin: 0 2px<br />
}<br />
b.rtop b.r4, b.rbottom b.r4{<br />
margin: 0 1px;<br />
height: 2px<br />
}</p>
<p><strong>Lista.php:</strong></p>
<p style="background-color:#cccccc;"> <code><br />
&lt;?php</code>/*<br />
This file is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or<br />
(at your option) any later version.</p>
<p>You cand find a copy of the GNU General Public License in the &#8220;license&#8221; directory.</p>
<p>You should have received a copy of the GNU General Public License along with SIESTTA; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA.</p>
<p>Ramon Castro (http://ramoncastro.es)</p>
<p>Iconos: Proyecto Tango (http://tango.freedesktop.org/Tango_Desktop_Project)<br />
*/</p>
<p>//recibo variable<br />
$valor = $_POST['value'];</p>
<p>//elimino espacios en blanco al principio y final</p>
<p>$cadena = trim($valor);</p>
<p>//conectamos con mysql y con la base de datos</p>
<p>$con_mysql=mysql_connect(&#8216;localhost&#8217;,&#8217;scripts&#8217;,&#8217;scripts&#8217;);</p>
<p>if (!$con_mysql) {echo &#8216;No se ha podido encontrar el servidor de datos&#8217;;exit;}</p>
<p>mysql_select_db(&#8217;scripts&#8217;);</p>
<p>//consultamos los registros coincidentes</p>
<p>$select = mysql_query(&#8220;select * from alum where nombre like &#8216;$cadena%&#8217;&#8221;);</p>
<p>echo &#8216;&lt;ul&gt;&#8217;;</p>
<p>//si no hay registros mostramos mensaje</p>
<p>if(mysql_num_rows($select) == 0)</p>
<p>{</p>
<p>echo &#8216;&lt;li&gt;No hay resultados&lt;/li&gt;&#8217;;</p>
<p>}</p>
<p>else</p>
<p>{</p>
<p>//montamos bucle para presentar la lista</p>
<p>for($a=0;$a&lt;(mysql_num_rows($select));$a++)<br />
{<br />
//extraemos registro actual<br />
$reg = mysql_fetch_array($select);<br />
//listamos<br />
echo &#8216;&lt;li&gt;&#8217;.$reg['nombre'].&#8217;&lt;/li&gt;&#8217;;<br />
}</p>
<p>}</p>
<p>//cerramos lista</p>
<p>echo &#8216;&lt;/ul&gt;&#8217;;</p>
<p>?&gt;</p>
<p>Saludos</p>
<p>[tag]script.aculo.us, prototype, ajax, autocompletar, php, mysql[/tag]</p>
<img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/pehachepe.wordpress.com/14/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/pehachepe.wordpress.com/14/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/pehachepe.wordpress.com/14/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/pehachepe.wordpress.com/14/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/pehachepe.wordpress.com/14/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/pehachepe.wordpress.com/14/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/pehachepe.wordpress.com/14/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/pehachepe.wordpress.com/14/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/pehachepe.wordpress.com/14/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/pehachepe.wordpress.com/14/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/pehachepe.wordpress.com/14/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/pehachepe.wordpress.com/14/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=pehachepe.wordpress.com&blog=886399&post=14&subd=pehachepe&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://pehachepe.wordpress.com/2007/03/17/autocompletar-usando-scriptaculous-php-y-mysql/feed/</wfw:commentRss>
		<slash:comments>15</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/bbd6c58f71d90e42aacbc179ec6a61c4?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">ramoncastro</media:title>
		</media:content>

		<media:content url="http://www.intrafitt.com/images/spinning.gif" medium="image">
			<media:title type="html">Spinning</media:title>
		</media:content>
	</item>
		<item>
		<title>Aligerando la web con AJAX (de fondo, sin hacer ruido)</title>
		<link>http://pehachepe.wordpress.com/2007/03/17/aligerando-la-web-con-ajax-de-fondo-sin-hacer-ruido/</link>
		<comments>http://pehachepe.wordpress.com/2007/03/17/aligerando-la-web-con-ajax-de-fondo-sin-hacer-ruido/#comments</comments>
		<pubDate>Sat, 17 Mar 2007 21:41:19 +0000</pubDate>
		<dc:creator>Ramón Castro</dc:creator>
				<category><![CDATA[AJAX]]></category>

		<guid isPermaLink="false">http://pehachepe.wordpress.com/2007/03/17/aligerando-la-web-con-ajax-de-fondo-sin-hacer-ruido/</guid>
		<description><![CDATA[
No sé casi nada de AJAX pero algún día habrá que empezar y qué mejor fuente que Ribosomatic, con tantos ejemplos. Aquí os pongo uno facilito que he adaptado para comprobar lo bien que se trabaja con esta tecnología.
Haremos lo siguiente:
- LLegamos a una página donde tenemos seleccionados a un@s alumn@s
- Hacemos clic sobre su [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=pehachepe.wordpress.com&blog=886399&post=13&subd=pehachepe&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p style="text-align:center;"><img src="http://www.greg.ch/publications/virtualwalk_2000.gif" alt="Sin hacer ruido" /></p>
<p>No sé casi nada de AJAX pero algún día habrá que empezar y qué mejor fuente que Ribosomatic, con tantos ejemplos. Aquí os pongo uno facilito que he adaptado para comprobar lo bien que se trabaja con esta tecnología.</p>
<p>Haremos lo siguiente:</p>
<p>- LLegamos a una página donde tenemos seleccionados a un@s alumn@s<br />
- Hacemos clic sobre su nombre y se nos presenta la nota<br />
- Todo esto tiene lugar sin recarga de la página<br />
- En el ejemplo todo está en la misma tabla pero puede hacerse lo complicado que uno quiera</p>
<p>Entran en juego:</p>
<p>- index.php que nos presenta el listado de alumn@s, los enlaces con una función que al clicarlo llamará al script mira_nota.php. Además, index.php contiene un elemento [div] vacío que albergará el resultado</p>
<p>- funciones.js que inicializa el objeto XMLHttpRequest y que contiene la función pedirDatos(codigo) que llama a mira_nota.php para que extraiga de la base de datos la calificación del código pasado. Una vez tenga el resultado, lo lleva al [div] vacío de index.php. Todo esto tiene lugar en la trastienda, sin recarga de página</p>
<p>- mira_nota.php que se encarga de consultar a la base de datos la calificación y listarla</p>
<p>- index.css que es responsable de los estilos</p>
<p>El código:</p>
<p>index.php</p>
<p style="background-color:#cccccc;"> <code><br />
&lt;?php</code>/*<br />
This file is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or<br />
(at your option) any later version.</p>
<p>You cand find a copy of the GNU General Public License in the &#8220;license&#8221; directory.</p>
<p>You should have received a copy of the GNU General Public License along with SIESTTA; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA.</p>
<p>Ramon Castro (http://ramoncastro.es)</p>
<p>Iconos: Proyecto Tango (http://tango.freedesktop.org/Tango_Desktop_Project)</p>
<p>Fuente código: Ribosomatic (http://www.ribosomatic.com/ejemplos/pagina/5/)</p>
<p>*/</p>
<p>?&gt;</p>
<p>&lt;!DOCTYPE html PUBLIC &#8220;-//W3C//DTD XHTML 1.0 Transitional//EN&#8221; &#8220;http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd&#8221;&gt;<br />
&lt;html xmlns=&#8221;http://www.w3.org/1999/xhtml&#8221;&gt;<br />
&lt;head&gt;<br />
&lt;meta http-equiv=&#8221;Content-Type&#8221; content=&#8221;text/html; charset=iso-8859-1&#8243; /&gt;<br />
&lt;title&gt;Principal&lt;/title&gt;<br />
&lt;link href=&#8221;index.css&#8221; rel=&#8221;stylesheet&#8221; type=&#8221;text/css&#8221; /&gt;<br />
&lt;script type=&#8221;text/javascript&#8221; src=&#8221;funciones.js&#8221;&gt;&lt;/script&gt;<br />
&lt;/head&gt;<br />
&lt;body&gt;<br />
&lt;div id=&#8221;encabezado&#8221;&gt;Web de Prueba&lt;/div&gt;</p>
<p>&lt;?php</p>
<p>//conectamos con mysql y con la base de datos</p>
<p>$con_mysql=mysql_connect(&#8216;localhost&#8217;,&#8217;scripts&#8217;,&#8217;scripts&#8217;);</p>
<p>if (!$con_mysql) {echo &#8216;No se ha podido encontrar el servidor de datos&#8217;;exit;}</p>
<p>mysql_select_db(&#8217;scripts&#8217;);</p>
<p>//realizamos la consulta</p>
<p>$select = mysql_query(&#8220;select * from notas&#8221;);</p>
<p>//presentamos el elemento &lt;div&gt; donde irá la lista</p>
<p>echo &#8216;&lt;div id=&#8221;contenido&#8221;&gt;&#8217;;<br />
//el formulario<br />
echo &#8216;&lt;form name=&#8221;formulario&#8221;&gt;&#8217;;<br />
echo &#8216;&lt;ul&gt;&#8217;;<br />
echo &#8216;&lt;/li&gt;ALUMN@&lt;/li&gt;&#8217;;<br />
echo &#8216;&lt;br /&gt;&#8217;;<br />
echo &#8216;&lt;br /&gt;&#8217;;</p>
<p>//montamos el bucle</p>
<p>for($a=0;$a&lt;(mysql_num_rows($select));$a++)<br />
{<br />
//extraemos el registro completo<br />
$registro = mysql_fetch_array($select);<br />
/*extraemos los valores y los presentamos<br />
en la lista. El nombre es un enlace que<br />
al pulsar hará que la aplicación nos<br />
muestre la calificación obtenida*/<br />
$codigo = $registro['codigo'];<br />
echo &#8216;&lt;li&gt;&lt;a href=&#8221;#&#8221; onclick=&#8221;pedirDatos(\&#8221;.$codigo.&#8217;\')&#8221; title=&#8221;Ver nota&#8221;&gt;&#8217;.$registro['alum'].&#8217;&lt;/a&gt;&lt;/li&gt;&#8217;;<br />
}//fin de bucle<br />
//cerramos lista, formulario y &lt;div&gt;<br />
echo &#8216;&lt;/ul&gt;&#8217;;<br />
echo &#8216;&lt;/form&gt;&#8217;;<br />
echo &#8216;&lt;/div&gt;&#8217;;</p>
<p>//presentamos el &lt;div&gt; donde aparecerá la nota</p>
<p>echo &#8216;&lt;div id=&#8221;resultado&#8221;&gt;&lt;/div&gt;&#8217;;</p>
<p>?&gt;</p>
<p>&lt;/body&gt;<br />
&lt;/html&gt;</p>
<p>funciones.js</p>
<p style="background-color:#cccccc;"> <code><br />
//Desarrollado por Jesus Liñán</code>//webmaster@ribosomatic.com</p>
<p>//ribosomatic.com</p>
<p>//Puedes hacer lo que quieras con el código</p>
<p>//pero visita la web cuando te acuerdes</p>
<p>function objetoAjax(){</p>
<p>var xmlhttp=false;</p>
<p>try {</p>
<p>xmlhttp = new ActiveXObject(&#8220;Msxml2.XMLHTTP&#8221;);</p>
<p>} catch (e) {</p>
<p>try {</p>
<p>xmlhttp = new ActiveXObject(&#8220;Microsoft.XMLHTTP&#8221;);</p>
<p>} catch (E) {</p>
<p>xmlhttp = false;</p>
<p>}</p>
<p>}</p>
<p>if (!xmlhttp &amp;&amp; typeof XMLHttpRequest!=&#8217;undefined&#8217;) {</p>
<p>xmlhttp = new XMLHttpRequest();</p>
<p>}</p>
<p>return xmlhttp;</p>
<p>}</p>
<p>function pedirDatos(codigo){</p>
<p>//donde se mostrará el resultado</p>
<p>divResultado = document.getElementById(&#8216;resultado&#8217;);</p>
<p>//tomamos el valor de la lista desplegable</p>
<p>var codigo;</p>
<p>//instanciamos el objetoAjax</p>
<p>ajax=objetoAjax();</p>
<p>//usamos el medoto POST</p>
<p>//archivo que realizará la operacion</p>
<p>//datoscliente.php</p>
<p>ajax.open(&#8220;POST&#8221;, &#8220;mira_nota.php&#8221;,true);</p>
<p>ajax.onreadystatechange=function() {</p>
<p>if (ajax.readyState==4) {</p>
<p>//mostrar resultados en esta capa</p>
<p>divResultado.innerHTML = ajax.responseText</p>
<p>}</p>
<p>}</p>
<p>ajax.setRequestHeader(&#8220;Content-Type&#8221;,&#8221;application/x-www-form-urlencoded&#8221;);</p>
<p>//enviando los valores</p>
<p>ajax.send(&#8220;codigo=&#8221;+codigo)</p>
<p>}<br />
mira_nota.php</p>
<p style="background-color:#cccccc;"> <code><br />
&lt;?php</code>//recogemos variable POST<br />
$codigo = $_POST['codigo'];<br />
//si lo tenemos, seguimos:<br />
if($codigo)<br />
{</p>
<p>//conectamos con mysql y con la base de datos<br />
$con_mysql=mysql_connect(&#8216;localhost&#8217;,&#8217;scripts&#8217;,&#8217;scripts&#8217;);<br />
if (!$con_mysql) {echo &#8216;No se ha podido encontrar el servidor de datos&#8217;;exit;}<br />
mysql_select_db(&#8217;scripts&#8217;);<br />
//consultamos<br />
$select = mysql_query(&#8220;select * from notas where codigo=&#8217;$codigo&#8217;&#8221;);</p>
<p>//presentamos<br />
$registro = mysql_fetch_array($select);<br />
$alum = $registro['alum'];<br />
$nota = $registro['nota'];<br />
echo &#8216;&lt;br /&gt;&#8217;;<br />
echo &#8216;&lt;br /&gt;&#8217;;<br />
echo $alum;<br />
echo &#8216; &#8216;;<br />
echo $nota;</p>
<p>}<br />
else<br />
{<br />
echo &#8216;Ha ocurrido un error&#8217;;<br />
}</p>
<p>?&gt;<br />
index.css</p>
<p style="background-color:#cccccc;"> <code><br />
/*<br />
This file is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or<br />
(at your option) any later version.</code>You cand find a copy of the GNU General Public License in the &#8220;license&#8221; directory.</p>
<p>You should have received a copy of the GNU General Public License along with SIESTTA; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA.</p>
<p>Ramon Castro (http://ramoncastro.es)</p>
<p>Iconos: Proyecto Tango (http://tango.freedesktop.org/Tango_Desktop_Project)</p>
<p>*/<br />
*{<br />
margin:0;</p>
<p>padding:0;<br />
}<br />
ul{list-style:none;}<br />
li{font-size:11px;}<br />
a {text-decoration:none;}<br />
a:link, a:visited{color:#444;}<br />
a:hover, a:active{color:#0021a5;}<br />
input{<br />
border:1px solid #444;<br />
margin:4px;<br />
font-size:10px;<br />
}<br />
input:hover{<br />
border:1px solid #0021a5;<br />
}</p>
<p>body{</p>
<p>font-family: Andale Mono;</p>
<p>font-size:12px;<br />
text-align:left<br />
}</p>
<p>div#encabezado{<br />
font-size:44px;<br />
height:70px;<br />
border-bottom: 1px solid #444;<br />
padding:30px;<br />
background:transparent url(../imgs/encab.png) no-repeat center bottom;<br />
text-align:center;<br />
}</p>
<p>div#contenido{<br />
position:absolute;<br />
top:250px;<br />
left: 200px;<br />
width:200px;<br />
}</p>
<p>div#resultado{<br />
text-align:center;<br />
position: absolute;<br />
font-size:30px;<br />
top:250px;<br />
left:400px;<br />
width:500px;<br />
background:transparent url(../imgs/not.png) no-repeat center top;<br />
}</p>
<p>Saludos</p>
<p>[tag]ajax, php, consulta[/tag]</p>
<img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/pehachepe.wordpress.com/13/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/pehachepe.wordpress.com/13/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/pehachepe.wordpress.com/13/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/pehachepe.wordpress.com/13/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/pehachepe.wordpress.com/13/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/pehachepe.wordpress.com/13/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/pehachepe.wordpress.com/13/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/pehachepe.wordpress.com/13/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/pehachepe.wordpress.com/13/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/pehachepe.wordpress.com/13/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/pehachepe.wordpress.com/13/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/pehachepe.wordpress.com/13/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=pehachepe.wordpress.com&blog=886399&post=13&subd=pehachepe&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://pehachepe.wordpress.com/2007/03/17/aligerando-la-web-con-ajax-de-fondo-sin-hacer-ruido/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/bbd6c58f71d90e42aacbc179ec6a61c4?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">ramoncastro</media:title>
		</media:content>

		<media:content url="http://www.greg.ch/publications/virtualwalk_2000.gif" medium="image">
			<media:title type="html">Sin hacer ruido</media:title>
		</media:content>
	</item>
		<item>
		<title>Presentando resultados SQL con bucle FOR y WHILE</title>
		<link>http://pehachepe.wordpress.com/2007/03/17/presentando-resultados-sql-con-bucle-for-y-while/</link>
		<comments>http://pehachepe.wordpress.com/2007/03/17/presentando-resultados-sql-con-bucle-for-y-while/#comments</comments>
		<pubDate>Sat, 17 Mar 2007 21:40:31 +0000</pubDate>
		<dc:creator>Ramón Castro</dc:creator>
				<category><![CDATA[PHP]]></category>

		<guid isPermaLink="false">http://pehachepe.wordpress.com/2007/03/17/presentando-resultados-sql-con-bucle-for-y-while/</guid>
		<description><![CDATA[
A la hora de presentar en nuestra web un listado (de calificaciones, quizá) lo más frecuente es echar mano de un bucle y entre éstos los más populares son: for y while
Veremos un ejemplo facilón donde podemos elegir qué bucle queremos utilizar para presentar un listado de alumn@s y notas. Todo ocurre en la misma [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=pehachepe.wordpress.com&blog=886399&post=12&subd=pehachepe&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p style="text-align:center;"><img src="http://fisica.unav.es/~angel/matlab/dia_flu3.jpg" alt="Bucle" /></p>
<p>A la hora de presentar en nuestra web un listado (de calificaciones, quizá) lo más frecuente es echar mano de un bucle y entre éstos los más populares son: <strong>for</strong> y <strong>while</strong></p>
<p>Veremos un ejemplo facilón donde podemos elegir qué bucle queremos utilizar para presentar un listado de alumn@s y notas. Todo ocurre en la misma página index.php (como soporte de estilos, vinculamos a index.css).</p>
<ul>
<li>Cuando el visitante llega se encuentra con dos opciones tipo &#8216;radio&#8217;, pincha una de ellas y pulsa el botón &#8220;Listar&#8221;.</li>
<li>La página se recarga y el script PHP se encarga de recoger el valor de la opción &#8216;radio&#8217;</li>
<li>El control pasa a un switch y, en función del valor pasado (for o while), se presenta el listado solicitado</li>
<li>Tras listar, un enlace nos posibilita volver a comenzar de nuevo</li>
<p>Código de index.php</p>
<p style="background-color:#cccccc;"> <code><br />
&lt;?php</code>/*<br />
This file is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or<br />
(at your option) any later version.</p>
<p>You cand find a copy of the GNU General Public License in the &#8220;license&#8221; directory.</p>
<p>You should have received a copy of the GNU General Public License along with SIESTTA; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA.</p>
<p>Ramon Castro (http://ramoncastro.es)</p>
<p>Iconos: Proyecto Tango (http://tango.freedesktop.org/Tango_Desktop_Project)</p>
<p>*/</p>
<p>?&gt;</p>
<p>&lt;!&#8211; En el encabezado HTML incluimos la referencia a index.css donde manejaremos los<br />
estilos de la página. Además, cargamos un primer elemento &lt;div&gt; identificado como &#8220;Encabezado&#8221;<br />
&#8211;&gt;</p>
<p>&lt;!DOCTYPE html PUBLIC &#8220;-//W3C//DTD XHTML 1.0 Transitional//EN&#8221; &#8220;http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd&#8221;&gt;<br />
&lt;html xmlns=&#8221;http://www.w3.org/1999/xhtml&#8221;&gt;<br />
&lt;head&gt;<br />
&lt;meta http-equiv=&#8221;Content-Type&#8221; content=&#8221;text/html; charset=iso-8859-1&#8243; /&gt;<br />
&lt;title&gt;Principal&lt;/title&gt;<br />
&lt;link href=&#8221;index.css&#8221; rel=&#8221;stylesheet&#8221; type=&#8221;text/css&#8221; /&gt;<br />
&lt;/head&gt;<br />
&lt;body&gt;<br />
&lt;div id=&#8221;encabezado&#8221;&gt;Web de Prueba&lt;/div&gt;<br />
&lt;?php</p>
<p>/*comprobamos si acabamos de llegar a la página<br />
o hemos enviado una petición POST*/</p>
<p>$radio = $_POST['bucle'];</p>
<p>//si la hemos enviado</p>
<p>if($radio)</p>
<p>{</p>
<p>//conectamos con mysql y con la base de datos</p>
<p>$con_mysql=mysql_connect(&#8216;localhost&#8217;,&#8217;scripts&#8217;,&#8217;scripts&#8217;);</p>
<p>if (!$con_mysql) {echo &#8216;No se ha podido encontrar el servidor de datos&#8217;;exit;}</p>
<p>mysql_select_db(&#8217;scripts&#8217;);</p>
<p>//controlamos con switch</p>
<p>switch ($radio)</p>
<p>{</p>
<p>case &#8216;for&#8217;:</p>
<p>//hacemos la consulta</p>
<p>$select = mysql_query(&#8220;select * from notas order by alum&#8221;);</p>
<p>//presentamos el elemento &lt;div&gt;<br />
echo &#8216;&lt;div id=&#8221;contenido&#8221;&gt;&#8217;;<br />
echo &#8216;&lt;img src=&#8221;../imgs/not.png&#8221; alt=&#8221;Notas&#8221; /&gt;&#8217;;<br />
echo &#8216;&lt;br /&gt;&#8217;;<br />
echo &#8216;&lt;ul&gt;&#8217;;<br />
echo &#8216;&lt;br /&gt;&#8217;;<br />
echo &#8216;&lt;li&gt;LISTADO DE NOTAS CON BUCLE FOR&lt;/li&gt;&#8217;;<br />
echo &#8216;&lt;br /&gt;&#8217;;<br />
//bucle for<br />
/*desde el primer resultado de la consulta<br />
hasta el último extraeremos el nombre de alumn@<br />
y su nota y lo presentaremos en la lista*/<br />
for($a=0;$a&lt;(mysql_num_rows($select));$a++)<br />
{<br />
$registro = mysql_fetch_array($select);<br />
$alum = $registro['alum'];<br />
$nota = $registro['nota'];<br />
echo &#8216;&lt;li&gt;&#8217;.$alum.&#8217; &#8216;.$nota.&#8217;&lt;/li&gt;&#8217;;<br />
}//fin de bucle<br />
//cerramos lista<br />
echo &#8216;&lt;/ul&gt;&#8217;;</p>
<p>//salimos de switch<br />
break;</p>
<p>case &#8216;while&#8217;:</p>
<p>//hacemos la consulta</p>
<p>$select = mysql_query(&#8220;select * from notas order by alum&#8221;);</p>
<p>//presentamos el elemento &lt;div&gt;<br />
echo &#8216;&lt;div id=&#8221;contenido&#8221;&gt;&#8217;;<br />
echo &#8216;&lt;img src=&#8221;../imgs/not.png&#8221; alt=&#8221;Notas&#8221; /&gt;&#8217;;<br />
echo &#8216;&lt;br /&gt;&#8217;;<br />
echo &#8216;&lt;ul&gt;&#8217;;<br />
echo &#8216;&lt;br /&gt;&#8217;;<br />
echo &#8216;&lt;li&gt;LISTADO DE NOTAS CON BUCLE WHILE&lt;/li&gt;&#8217;;<br />
echo &#8216;&lt;br /&gt;&#8217;;<br />
//inicializamos la variable contador<br />
$b=0;<br />
//montamos el bucle<br />
/*mientras el contador sea menor que el<br />
número de registros de la consulta, iremos<br />
extrayendo el nombre de alumn@ y su nota y<br />
lo presentaremos en la lista*/<br />
while($b&lt;mysql_num_rows($select))<br />
{<br />
$registro = mysql_fetch_array($select);<br />
$alum = $registro['alum'];<br />
$nota = $registro['nota'];<br />
echo &#8216;&lt;li&gt;&#8217;.$alum.&#8217; &#8216;.$nota.&#8217;&lt;/li&gt;&#8217;;<br />
//incrementamos el contador<br />
$b++;<br />
}//fin de bucle while<br />
//cerramos lista<br />
echo &#8216;&lt;/ul&gt;&#8217;;</p>
<p>//salimos de switch<br />
break;</p>
<p>}//fin de switch</p>
<p>//mostramos enlace para volver atrás<br />
echo &#8216;&lt;br /&gt;&#8217;;<br />
echo &#8216;&lt;a href=&#8221;index.php&#8221;&gt;&lt;img src=&#8221;../imgs/atras.png&#8221; alt=&#8221;Volver&#8221; title=&#8221;Volver&#8221; /&gt;&lt;/a&gt;&#8217;;</p>
<p>//cerramos elemento &lt;/div&gt;<br />
echo &#8216;&lt;/div&gt;&#8217;;</p>
<p>}//fin de if($radio)</p>
<p>/*si acabamos de llegar a la página<br />
cargamos el formulario de envío*/</p>
<p>else</p>
<p>{</p>
<p>//mostramos elemento &lt;div&gt;<br />
echo &#8216;&lt;div id=&#8221;contenido&#8221;&gt;&#8217;;<br />
//abrimos formulario para enviar POST<br />
echo &#8216;&lt;form method=&#8221;post&#8221; action=&#8221;index.php&#8221;&gt;&#8217;;<br />
//mostramos una lista con las opciones &#8216;radio&#8217;<br />
echo &#8216;&lt;ul&gt;&#8217;;<br />
echo &#8216;&lt;li&gt;&lt;input type=&#8221;radio&#8221; name=&#8221;bucle&#8221; value=&#8221;for&#8221; /&gt;Ver notas con bucle FOR&lt;/li&gt;&#8217;;<br />
echo &#8216;&lt;li&gt;&lt;input type=&#8221;radio&#8221; name=&#8221;bucle&#8221; value=&#8221;while&#8221; /&gt;Ver notas con bucle WHILE&lt;/li&gt;&#8217;;<br />
echo &#8216;&lt;/ul&gt;&#8217;;<br />
echo &#8216;&lt;br /&gt;&#8217;;<br />
//presentamos un botón de envío<br />
echo &#8216;&lt;input type=&#8221;submit&#8221; value=&#8221;Listar&#8221; name=&#8221;b_env&#8221; /&gt;&#8217;;<br />
//cerramos formulario<br />
echo &#8216;&lt;/form&gt;&#8217;;<br />
//cerramos elemento &lt;div&gt;<br />
echo &#8216;&lt;/div&gt;&#8217;;</p>
<p>}//fin de else</p>
<p>?&gt;</p>
<p>Código de index.css</p>
<p style="background-color:#cccccc;"> <code><br />
/*<br />
This file is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or<br />
(at your option) any later version.</code>You cand find a copy of the GNU General Public License in the &#8220;license&#8221; directory.</p>
<p>You should have received a copy of the GNU General Public License along with SIESTTA; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA.</p>
<p>Ramon Castro (http://ramoncastro.es)</p>
<p>Iconos: Proyecto Tango (http://tango.freedesktop.org/Tango_Desktop_Project)</p>
<p>*/<br />
*{<br />
margin:0;</p>
<p>padding:0;<br />
}<br />
ul{list-style:none;}<br />
li{font-size:11px;}<br />
a {text-decoration:none;}<br />
a:link, a:visited{color:#444;}<br />
a:hover, a:active{color:#0021a5;}<br />
input{<br />
border:1px solid #444;<br />
margin:4px;<br />
font-size:10px;<br />
}<br />
input:hover{<br />
border:1px solid #0021a5;<br />
}</p>
<p>body{</p>
<p>font-family: Andale Mono;</p>
<p>font-size:12px;<br />
}</p>
<p>div#encabezado{<br />
text-align:center;<br />
font-size:44px;<br />
height:70px;<br />
border-bottom: 1px solid #444;<br />
padding:30px;<br />
background:transparent url(../imgs/encab.png) no-repeat center bottom;<br />
}</p>
<p>div#contenido{<br />
position:absolute;<br />
top:250px;<br />
left: 400px;<br />
width:200px;<br />
text-align:center;<br />
}</p>
<p>Saludos</p>
<p>[tag]bucle, for, while, php[/tag]</ul>
<img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/pehachepe.wordpress.com/12/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/pehachepe.wordpress.com/12/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/pehachepe.wordpress.com/12/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/pehachepe.wordpress.com/12/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/pehachepe.wordpress.com/12/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/pehachepe.wordpress.com/12/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/pehachepe.wordpress.com/12/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/pehachepe.wordpress.com/12/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/pehachepe.wordpress.com/12/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/pehachepe.wordpress.com/12/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/pehachepe.wordpress.com/12/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/pehachepe.wordpress.com/12/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=pehachepe.wordpress.com&blog=886399&post=12&subd=pehachepe&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://pehachepe.wordpress.com/2007/03/17/presentando-resultados-sql-con-bucle-for-y-while/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/bbd6c58f71d90e42aacbc179ec6a61c4?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">ramoncastro</media:title>
		</media:content>

		<media:content url="http://fisica.unav.es/~angel/matlab/dia_flu3.jpg" medium="image">
			<media:title type="html">Bucle</media:title>
		</media:content>
	</item>
		<item>
		<title>Pestañas en la web con CSS y un control switch</title>
		<link>http://pehachepe.wordpress.com/2007/03/17/pestanas-en-la-web-con-css-y-un-control-switch/</link>
		<comments>http://pehachepe.wordpress.com/2007/03/17/pestanas-en-la-web-con-css-y-un-control-switch/#comments</comments>
		<pubDate>Sat, 17 Mar 2007 21:36:19 +0000</pubDate>
		<dc:creator>Ramón Castro</dc:creator>
				<category><![CDATA[PHP]]></category>

		<guid isPermaLink="false">http://pehachepe.wordpress.com/2007/03/17/pestanas-en-la-web-con-css-y-un-control-switch/</guid>
		<description><![CDATA[
Una forma rápida y económica (en tiempo de carga) de poner pestañas de navegación en nuestra web consiste en emplear CSS y una estructura de control en PHP como puede ser la instrucción &#8220;switch&#8221;.
A continuación, mostramos un index.php donde tendremos una web con 3 pestañas que usaremos para navegar y acceder a contenidos diferentes. Siempre [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=pehachepe.wordpress.com&blog=886399&post=11&subd=pehachepe&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p style="text-align:center;"><img src="http://static.flickr.com/148/371417013_f69d824be2_m.jpg" alt="Pestañas" border="1" height="240" width="184" /></p>
<p>Una forma rápida y económica (en tiempo de carga) de poner pestañas de navegación en nuestra web consiste en emplear CSS y una estructura de control en PHP como puede ser la instrucción &#8220;switch&#8221;.</p>
<p>A continuación, mostramos un index.php donde tendremos una web con 3 pestañas que usaremos para navegar y acceder a contenidos diferentes. Siempre estamos en la misma página aunque el efecto de las pestañas hace pensar que cambiamos de capa. También se incluye el index.css que ordena y coloca los elementos [div], entre otros.</p>
<p>Para gestionar las pestañas, pasamos una variable por $_GET a la página principal y en función de su valor, la instrucción switch va presentando un contenido u otro.</p>
<p>El código de index.php:</p>
<p style="background-color:#cccccc;"> <code><br />
&lt;?php</code>/*<br />
This file is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or<br />
(at your option) any later version.</p>
<p>You cand find a copy of the GNU General Public License in the &#8220;license&#8221; directory.</p>
<p>You should have received a copy of the GNU General Public License along with SIESTTA; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA.</p>
<p>Ramon Castro (http://ramoncastro.es)</p>
<p>Iconos: Proyecto Tango (http://tango.freedesktop.org/Tango_Desktop_Project)</p>
<p>*/</p>
<p>?&gt;</p>
<p>&lt;!&#8211; En el encabezado HTML incluimos la referencia a index.css donde manejaremos los<br />
estilos de la página. Además, cargamos un primer elemento &lt;div&gt; identificado como &#8220;Encabezado&#8221;<br />
&#8211;&gt;</p>
<p>&lt;!DOCTYPE html PUBLIC &#8220;-//W3C//DTD XHTML 1.0 Transitional//EN&#8221; &#8220;http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd&#8221;&gt;<br />
&lt;html xmlns=&#8221;http://www.w3.org/1999/xhtml&#8221;&gt;<br />
&lt;head&gt;<br />
&lt;meta http-equiv=&#8221;Content-Type&#8221; content=&#8221;text/html; charset=iso-8859-1&#8243; /&gt;<br />
&lt;title&gt;Principal&lt;/title&gt;<br />
&lt;link href=&#8221;index.css&#8221; rel=&#8221;stylesheet&#8221; type=&#8221;text/css&#8221; /&gt;<br />
&lt;/head&gt;<br />
&lt;body&gt;<br />
&lt;div id=&#8221;encabezado&#8221;&gt;Web de Prueba&lt;/div&gt;<br />
&lt;?php</p>
<p>/*cargamos variable $pest que recoge el valor<br />
de la pestaña que hayamos pulsado. Si no existe,<br />
es que acabamos de llegar a la página*/</p>
<p>$pest = $_GET['pest'];</p>
<p>if($pest)</p>
<p>{</p>
<p>/*Si existe la variable, ésta puede tener<br />
varios valores en función de la pestaña<br />
pulsada. Controlamos esto con una instrucción<br />
switch*/</p>
<p>switch ($pest)</p>
<p>{</p>
<p>/*En cada caso se nos presentará, dentro del &lt;div&gt; pestanyas, una<br />
lista de 3 elementos cada uno de los cuales representará una<br />
pestaña. En función de la pestaña pulsada, su enlace estará<br />
identificado como &#8220;sel&#8221;.</p>
<p>Tras listar los elementos, cargamos en cada caso un &lt;div&gt; llamado<br />
contenido que recogerá un mensaje. Obviamente, aquí podemos<br />
incluir con require() un script php que ejecute las acciones<br />
que deseemos*/</p>
<p>case &#8216;pri&#8217;:</p>
<p>echo &#8216;<br />
&lt;div id=&#8221;pestanyas&#8221;&gt;<br />
&lt;ul&gt;<br />
&lt;li&gt;&lt;a   id=&#8221;sel&#8221; href=&#8221;index.php?pest=pri&#8221;&gt;Principal&lt;/a&gt;&lt;/li&gt;<br />
&lt;li&gt;&lt;a   href=&#8221;index.php?pest=doc&#8221;&gt;Documentación&lt;/a&gt;&lt;/li&gt;<br />
&lt;li&gt;&lt;a   href=&#8221;index.php?pest=dow&#8221;&gt;Descargas&lt;/a&gt;&lt;/li&gt;<br />
&lt;/ul&gt;<br />
&lt;/div&gt;<br />
&#8216;;</p>
<p>echo &#8216;&lt;div id=&#8221;contenido&#8221;&gt;&#8217;;<br />
echo &#8216;&lt;img src=&#8221;imgs/pri.png&#8221; alt=&#8221;Principal&#8221;/&gt;&#8217;;<br />
echo &#8216;&lt;br /&gt;&#8217;;<br />
echo &#8216;Estás en la página Principal&#8217;;<br />
echo &#8216;&lt;/div&gt;&#8217;;</p>
<p>break;</p>
<p>case &#8216;doc&#8217;:</p>
<p>echo &#8216;<br />
&lt;div id=&#8221;pestanyas&#8221;&gt;<br />
&lt;ul&gt;<br />
&lt;li&gt;&lt;a   href=&#8221;index.php?pest=pri&#8221;&gt;Principal&lt;/a&gt;&lt;/li&gt;<br />
&lt;li&gt;&lt;a   id =&#8221;sel&#8221; href=&#8221;index.php?pest=doc&#8221;&gt;Documentación&lt;/a&gt;&lt;/li&gt;<br />
&lt;li&gt;&lt;a   href=&#8221;index.php?pest=dow&#8221;&gt;Descargas&lt;/a&gt;&lt;/li&gt;<br />
&lt;/ul&gt;<br />
&lt;/div&gt;<br />
&#8216;;</p>
<p>echo &#8216;&lt;div id=&#8221;contenido&#8221;&gt;&#8217;;<br />
echo &#8216;&lt;img src=&#8221;imgs/doc.png&#8221; alt=&#8221;Documentación&#8221;/&gt;&#8217;;<br />
echo &#8216;&lt;br /&gt;&#8217;;<br />
echo &#8216;Estás en la página de Documentación&#8217;;<br />
echo &#8216;&lt;/div&gt;&#8217;;</p>
<p>break;</p>
<p>case &#8216;dow&#8217;:</p>
<p>echo &#8216;<br />
&lt;div id=&#8221;pestanyas&#8221;&gt;<br />
&lt;ul&gt;<br />
&lt;li&gt;&lt;a   href=&#8221;index.php?pest=pri&#8221;&gt;Principal&lt;/a&gt;&lt;/li&gt;<br />
&lt;li&gt;&lt;a   href=&#8221;index.php?pest=doc&#8221;&gt;Documentación&lt;/a&gt;&lt;/li&gt;<br />
&lt;li&gt;&lt;a   id=&#8221;sel&#8221; href=&#8221;index.php?pest=dow&#8221;&gt;Descargas&lt;/a&gt;&lt;/li&gt;<br />
&lt;/ul&gt;<br />
&lt;/div&gt;<br />
&#8216;;</p>
<p>echo &#8216;&lt;div id=&#8221;contenido&#8221;&gt;&#8217;;<br />
echo &#8216;&lt;img src=&#8221;imgs/dow.png&#8221; alt=&#8221;Descargas&#8221;/&gt;&#8217;;<br />
echo &#8216;&lt;br /&gt;&#8217;;<br />
echo &#8216;Estás en la página de Descargas&#8217;;<br />
echo &#8216;&lt;/div&gt;&#8217;;</p>
<p>break;</p>
<p>}</p>
<p>}</p>
<p>/*Si no existe la variable $pest es que<br />
acabamos de llegar a la página. Presentamos<br />
en este caso la primera opción, inicializando<br />
la variable pest al valor principal.*/</p>
<p>else</p>
<p>{<br />
$pest = &#8216;pri&#8217;;<br />
echo &#8216;<br />
&lt;div id=&#8221;pestanyas&#8221;&gt;<br />
&lt;ul&gt;<br />
&lt;li&gt;&lt;a   id=&#8221;sel&#8221; href=&#8221;index.php?pest=pri&#8221;&gt;Principal&lt;/a&gt;&lt;/li&gt;<br />
&lt;li&gt;&lt;a   href=&#8221;index.php?pest=doc&#8221;&gt;Documentación&lt;/a&gt;&lt;/li&gt;<br />
&lt;li&gt;&lt;a   href=&#8221;index.php?pest=dow&#8221;&gt;Descargas&lt;/a&gt;&lt;/li&gt;<br />
&lt;/ul&gt;<br />
&lt;/div&gt;<br />
&#8216;;</p>
<p>echo &#8216;&lt;div id=&#8221;contenido&#8221;&gt;&#8217;;<br />
echo &#8216;&lt;img src=&#8221;imgs/pri.png&#8221; alt=&#8221;Principal&#8221;/&gt;&#8217;;<br />
echo &#8216;&lt;br /&gt;&#8217;;<br />
echo &#8216;Estás en la página Principal&#8217;;<br />
echo &#8216;&lt;/div&gt;&#8217;;</p>
<p>}</p>
<p>?&gt;</p>
<p>El código de index.css:</p>
<p style="background-color:#cccccc;"> <code><br />
/*<br />
This file is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or<br />
(at your option) any later version.</code>You cand find a copy of the GNU General Public License in the &#8220;license&#8221; directory.</p>
<p>You should have received a copy of the GNU General Public License along with SIESTTA; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA.</p>
<p>Ramon Castro (http://ramoncastro.es)</p>
<p>Iconos: Proyecto Tango (http://tango.freedesktop.org/Tango_Desktop_Project)</p>
<p>*/<br />
*{<br />
margin:0;</p>
<p>padding:0;<br />
}<br />
ul{list-style:none;}<br />
li{font-size:11px;}<br />
a {text-decoration:none;}<br />
a:link, a:visited{color:#444;}<br />
a:hover, a:active{color:#0021a5;}</p>
<p>body{</p>
<p>font-family: Andale Mono;</p>
<p>font-size:12px;<br />
}</p>
<p>div#encabezado{<br />
text-align:center;<br />
font-size:44px;<br />
height:70px;<br />
border-bottom: 1px solid #444;<br />
padding:30px;<br />
background:transparent url(imgs/encab.png) no-repeat center bottom;<br />
}</p>
<p>div#pestanyas{<br />
position:absolute;<br />
top:112px;<br />
left:10px;<br />
}</p>
<p>#pestanyas li{<br />
display:block;<br />
float:left;<br />
}<br />
#pestanyas a{<br />
padding:5px;<br />
font-size:10px;<br />
border:1px solid #444;<br />
background-color:#bfc6f5;<br />
margin:1px;<br />
}<br />
#pestanyas a#sel{<br />
padding:5px;<br />
border-bottom:1px solid #FFF;<br />
font-size:10px;<br />
background-color:#FFF;<br />
}</p>
<p>div#contenido{<br />
position:absolute;<br />
top:250px;<br />
left: 400px;<br />
width:200px;<br />
text-align:center;<br />
}</p>
<p>Saludos</p>
<p>[tag]pestañas, tabs, css, switch[/tag]</p>
<img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/pehachepe.wordpress.com/11/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/pehachepe.wordpress.com/11/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/pehachepe.wordpress.com/11/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/pehachepe.wordpress.com/11/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/pehachepe.wordpress.com/11/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/pehachepe.wordpress.com/11/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/pehachepe.wordpress.com/11/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/pehachepe.wordpress.com/11/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/pehachepe.wordpress.com/11/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/pehachepe.wordpress.com/11/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/pehachepe.wordpress.com/11/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/pehachepe.wordpress.com/11/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=pehachepe.wordpress.com&blog=886399&post=11&subd=pehachepe&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://pehachepe.wordpress.com/2007/03/17/pestanas-en-la-web-con-css-y-un-control-switch/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/bbd6c58f71d90e42aacbc179ec6a61c4?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">ramoncastro</media:title>
		</media:content>

		<media:content url="http://static.flickr.com/148/371417013_f69d824be2_m.jpg" medium="image">
			<media:title type="html">Pestañas</media:title>
		</media:content>
	</item>
		<item>
		<title>Manejando PhpMyAdmin</title>
		<link>http://pehachepe.wordpress.com/2007/03/17/manejando-phpmyadmin/</link>
		<comments>http://pehachepe.wordpress.com/2007/03/17/manejando-phpmyadmin/#comments</comments>
		<pubDate>Sat, 17 Mar 2007 21:35:14 +0000</pubDate>
		<dc:creator>Ramón Castro</dc:creator>
				<category><![CDATA[PHP]]></category>

		<guid isPermaLink="false">http://pehachepe.wordpress.com/2007/03/17/manejando-phpmyadmin/</guid>
		<description><![CDATA[
PhpMyAdmin es una aplicación web que nos permite gestionar el servidor de datos MySQL y todas sus bases de datos. Las tareas más frecuentes son:
- Creación de bases de datos
- Creación de usuarios y permisos
- Creación de tablas y campos
- Exportación y copias de seguridad
- Importación de archivos
Nuestro hosting debería facilitarnos el acceso a PhpMyAdmin [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=pehachepe.wordpress.com&blog=886399&post=10&subd=pehachepe&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><div style="text-align:center;"><img src="http://shimshaymaster.hit.bg/phpmyadmin.gif" alt="phpmyadmin" /></div>
<p><strong>PhpMyAdmin</strong> es una aplicación web que nos permite gestionar el servidor de datos MySQL y todas sus bases de datos. Las tareas más frecuentes son:</p>
<p>- Creación de bases de datos<br />
- Creación de usuarios y permisos<br />
- Creación de tablas y campos<br />
- Exportación y copias de seguridad<br />
- Importación de archivos</p>
<p>Nuestro hosting debería facilitarnos el acceso a PhpMyAdmin así como login y clave de acceso. Dependiendo del servicio contratado tendremos o no posibilidad de crear bases de datos.</p>
<p>Cuando trabajamos en el laboratorio (nuestro PC) nos dirigimos desde el navegador hacia el formulario de entrada:</p>
<p><strong>http://localhost/phpmyadmin</strong></p>
<div style="text-align:center;border:1px;"><img src="http://farm1.static.flickr.com/180/367058467_b6e15cf3c0.jpg?v=0" alt="myadmin1" /></div>
<p>Nada más acceder, creamos la base de datos NUEVA</p>
<div style="text-align:center;border:1px;"><img src="http://farm1.static.flickr.com/159/367058471_c38ba1aecf.jpg?v=0" alt="myadmin2" /></div>
<p>En la siguiente pantalla, indicamos el nombre de la primera tabla de la base de datos y su número de campos</p>
<div style="text-align:center;border:1px;"><img src="http://farm1.static.flickr.com/105/367058474_9c5202f11b.jpg?v=0" alt="myadmin3" /></div>
<p>Ahora, introducimos la información de los 4 campos</p>
<div style="text-align:center;border:1px;"><img src="http://farm1.static.flickr.com/142/367058477_01a9cf4814.jpg?v=0" alt="myadmin4" /></div>
<p>Una vez guardada la tabla podemos realizar operaciones sobre los campos (añadir, eliminar, editar, asignarle clave primaria, etcétera)</p>
<div style="text-align:center;border:1px;"><img src="http://farm1.static.flickr.com/119/367058482_b98cab5e91.jpg?v=0" alt="myadmin5" /></div>
<p>Si queremos insertar valores (un registro) pulsaremos la pestaña &#8220;Insertar&#8221;</p>
<div style="text-align:center;border:1px;"><img src="http://farm1.static.flickr.com/133/367058487_be9a7a65e6.jpg?v=0" alt="myadmin6" /></div>
<p>Así quedaría una vez grabado el registro</p>
<div style="text-align:center;border:1px;"><img src="http://farm1.static.flickr.com/134/367058988_9cf4c76307.jpg?v=0" alt="myadmin7" /></div>
<p>Podemos realizar exportaciones bien de las tablas, bien de toda la base de datos. Para exportar una tabla, pulsamos la pestaña &#8220;Exportar&#8221; y podremos elegir el formato de exportación en el siguiente formulario. Además, podremos elegir el formato de compresión del archivo resultante.</p>
<div style="text-align:center;border:1px;"><img src="http://farm1.static.flickr.com/176/367058990_f606de441f.jpg?v=0" alt="myadmin8" /></div>
<p>Podríamos haber creado la tabla y el primer registro importando un archivo .sql como éste:</p>
<div style="background-color:#CCC;">
<code><br />
CREATE TABLE `USUARIO` (<br />
&#160;&#160;`USUARIO` varchar(6) NOT NULL,<br />
&#160;&#160;`CLAVE` varchar(30) NOT NULL,<br />
&#160;&#160;`NOMBRE` varchar(10) NOT NULL,<br />
&#160;&#160;`APELLIDOS` varchar(15) NOT NULL,<br />
&#160;&#160;PRIMARY KEY&#160;&#160;(`USUARIO`)<br />
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COMMENT='TABLA DE USUARIOS DEL SISTEMA';</p>
<p>INSERT INTO `USUARIO` (`USUARIO`, `CLAVE`, `NOMBRE`, `APELLIDOS`) VALUES ('elena', 'hoj.e0NevXN02', 'Elena', 'Castro Díaz');</p>
<p></code>
</div>
<p>Lo haríamos de la manera siguiente:</p>
<p>Tras crear la base de datos, pulsamos la pestaña &#8220;Importar&#8221;</p>
<div style="text-align:center;border:1px;"><img src="http://farm1.static.flickr.com/159/367072764_04f467b4aa.jpg?v=0" alt="myadmin9" /></div>
<p>Adjuntamos el archivo .sql</p>
<div style="text-align:center;border:1px;"><img src="http://farm1.static.flickr.com/144/367072766_eb886e67d8.jpg?v=0" alt="myadmin10" /></div>
<p>Enviamos y ya está</p>
<p>Por último, deberemos crear un usuario que maneje esta base de datos. Desde el panel principal, pulsamos el enlace &#8220;Privilegios&#8221;. Seguidamente, pulsaremos &#8220;Añadir un nuevo usuario&#8221; y cumplimentaremos el formulario que nos aparece con el:</p>
<p>- nombre del usuario<br />
- servidor (opción por defecto: cualquiera) &#8211;&gt; dejamos en blanco el campo<br />
- contraseña<br />
- repetimos la contraseña</p>
<p>Pulsamos &#8220;Continuar&#8221; (al final del formulario)</p>
<p>Tras la recarga de la página, buscamos un select con el título &#8220;Añadir privilegios a esta base de datos&#8221; y seleccionamos la base de datos NUEVA, tras la que deberemos activar los checkbox relativos a los permisos que queremos tenga este usuario sobre la base de datos.</p>
<p>En función de estos permisos nuestra aplicación PHP podrá ejecutar unas u otras consultas.</p>
<p>PhpMyAdmin es una gran herramienta y con ella se pueden realizar multitud de tareas. Aquí hemos indicado unas pocas por lo que dejamos al método de prueba-error el resto.</p>
<p>Para terminar, señalar que la mayoría de las operaciones con la base de datos la haremos usando la aplicación PHP (consulta de registros, actualizaciones, eliminación, inserciones, etcétera).</p>
<p>Saludos</p>
<p>[tag]phpmyadmin mysql[/tag]</p>
<img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/pehachepe.wordpress.com/10/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/pehachepe.wordpress.com/10/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/pehachepe.wordpress.com/10/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/pehachepe.wordpress.com/10/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/pehachepe.wordpress.com/10/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/pehachepe.wordpress.com/10/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/pehachepe.wordpress.com/10/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/pehachepe.wordpress.com/10/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/pehachepe.wordpress.com/10/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/pehachepe.wordpress.com/10/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/pehachepe.wordpress.com/10/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/pehachepe.wordpress.com/10/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=pehachepe.wordpress.com&blog=886399&post=10&subd=pehachepe&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://pehachepe.wordpress.com/2007/03/17/manejando-phpmyadmin/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/bbd6c58f71d90e42aacbc179ec6a61c4?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">ramoncastro</media:title>
		</media:content>

		<media:content url="http://shimshaymaster.hit.bg/phpmyadmin.gif" medium="image">
			<media:title type="html">phpmyadmin</media:title>
		</media:content>

		<media:content url="http://farm1.static.flickr.com/180/367058467_b6e15cf3c0.jpg?v=0" medium="image">
			<media:title type="html">myadmin1</media:title>
		</media:content>

		<media:content url="http://farm1.static.flickr.com/159/367058471_c38ba1aecf.jpg?v=0" medium="image">
			<media:title type="html">myadmin2</media:title>
		</media:content>

		<media:content url="http://farm1.static.flickr.com/105/367058474_9c5202f11b.jpg?v=0" medium="image">
			<media:title type="html">myadmin3</media:title>
		</media:content>

		<media:content url="http://farm1.static.flickr.com/142/367058477_01a9cf4814.jpg?v=0" medium="image">
			<media:title type="html">myadmin4</media:title>
		</media:content>

		<media:content url="http://farm1.static.flickr.com/119/367058482_b98cab5e91.jpg?v=0" medium="image">
			<media:title type="html">myadmin5</media:title>
		</media:content>

		<media:content url="http://farm1.static.flickr.com/133/367058487_be9a7a65e6.jpg?v=0" medium="image">
			<media:title type="html">myadmin6</media:title>
		</media:content>

		<media:content url="http://farm1.static.flickr.com/134/367058988_9cf4c76307.jpg?v=0" medium="image">
			<media:title type="html">myadmin7</media:title>
		</media:content>

		<media:content url="http://farm1.static.flickr.com/176/367058990_f606de441f.jpg?v=0" medium="image">
			<media:title type="html">myadmin8</media:title>
		</media:content>

		<media:content url="http://farm1.static.flickr.com/159/367072764_04f467b4aa.jpg?v=0" medium="image">
			<media:title type="html">myadmin9</media:title>
		</media:content>

		<media:content url="http://farm1.static.flickr.com/144/367072766_eb886e67d8.jpg?v=0" medium="image">
			<media:title type="html">myadmin10</media:title>
		</media:content>
	</item>
	</channel>
</rss>