<?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/"
	>

<channel>
	<title>mjcarrascosa.com &#187; Prototype</title>
	<atom:link href="http://mjcarrascosa.com/tag/prototype/feed/" rel="self" type="application/rss+xml" />
	<link>http://mjcarrascosa.com</link>
	<description>Desarrollo web y otras hierbas</description>
	<lastBuildDate>Fri, 08 Jul 2011 07:41:10 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Breve tutorial de AJAX con Prototype</title>
		<link>http://mjcarrascosa.com/breve-tutorial-de-ajax-con-prototype/</link>
		<comments>http://mjcarrascosa.com/breve-tutorial-de-ajax-con-prototype/#comments</comments>
		<pubDate>Sun, 07 Jun 2009 23:04:33 +0000</pubDate>
		<dc:creator>Manuel Jesús Carrascosa de la Blanca</dc:creator>
				<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[Librerías]]></category>
		<category><![CDATA[AJAX]]></category>
		<category><![CDATA[Prototype]]></category>

		<guid isPermaLink="false">http://mjcarrascosa.com/?p=86</guid>
		<description><![CDATA[Hacer uso de AJAX es realmente fácil con Prototype. Podéis descargarla desde su página de desacarga. Para mostrarlo vamos a ver un pequeño ejemplo: ejemploAJAXconPrototype.html: &#60;html&#62; &#60;head&#62; &#60;title&#62;Ejemplo de AJAX con Prototype&#60;/title&#62; &#60;script src="./prototype.js" type="text/javascript"&#62;&#60;/script&#62; &#60;script src="./ejemploAJAXconPrototype.js" type="text/javascript"&#62;&#60;/script&#62; &#60;/head&#62; &#60;body&#62; &#60;div&#62; &#60;ul&#62; &#60;li&#62;&#60;a href="javascript:ejemploAJAX(1);"&#62;Obtener texto 1.&#60;/a&#62;&#60;/li&#62; &#60;li&#62;&#60;a href="javascript:ejemploAJAX(2);"&#62;Obtener texto 2.&#60;/a&#62;&#60;/li&#62; &#60;li&#62;&#60;a href="javascript:ejemploAJAX(3);"&#62;Obtener texto 3.&#60;/a&#62;&#60;/li&#62; &#60;/ul&#62; [...]]]></description>
			<content:encoded><![CDATA[<p>Hacer uso de AJAX es realmente fácil con <a title="Página de Protype" href="http://www.prototypejs.org/">Prototype</a>. Podéis descargarla desde <a title="Página de descarga de Prototype" href="http://www.prototypejs.org/download">su página de desacarga</a>. Para mostrarlo vamos a ver un pequeño ejemplo:</p>
<p><strong>ejemploAJAXconPrototype.html:</strong></p>
<pre class="brush:html">&lt;html&gt;
&lt;head&gt;
&lt;title&gt;Ejemplo de AJAX con Prototype&lt;/title&gt;
&lt;script src="./prototype.js" type="text/javascript"&gt;&lt;/script&gt;
&lt;script src="./ejemploAJAXconPrototype.js" type="text/javascript"&gt;&lt;/script&gt;
&lt;/head&gt;
&lt;body&gt;
&lt;div&gt;
  &lt;ul&gt;
    &lt;li&gt;&lt;a href="javascript:ejemploAJAX(1);"&gt;Obtener texto 1.&lt;/a&gt;&lt;/li&gt;
    &lt;li&gt;&lt;a href="javascript:ejemploAJAX(2);"&gt;Obtener texto 2.&lt;/a&gt;&lt;/li&gt;
    &lt;li&gt;&lt;a href="javascript:ejemploAJAX(3);"&gt;Obtener texto 3.&lt;/a&gt;&lt;/li&gt;
  &lt;/ul&gt;
&lt;/div&gt;
&lt;div id="resultado"&gt;
&lt;/div&gt;
&lt;/body&gt;
&lt;/html&gt;</pre>
<p>Con estro creamos una lista con tres enlaces. Al pulsar sobre cada uno de ellos se llama a la función <em>ejemploAJAX</em> y le pasamos un valor numérico. En la cuarta linea podemos observar como se añade el archivo <em>prototype.js</em>. Este es el archivo que contiene la librería.</p>
<p>Veamos ahora nuestra función ejemploAJAX:</p>
<p><strong>ejemploAJAXconPrototype.js:</strong></p>
<pre class="brush:javascript">function ejemploAJAX(textID)
{
	var params = 'textid=' + textID;
	var ajaxRequest = new Ajax.Request(
		'ejemploAJAXconPrototype.php',
		{
			method: 'get',
			parameters: params,
			asynchronous: true,
			onComplete: mostrarRespuesta
		}
	);
}

function mostrarRespuesta(xmlHttpRequest, responseHeader)
{
	$('resultado').innerHTML = xmlHttpRequest.responseText;
}
</pre>
<p>Como se puede apreciar se crea una variable llamada params con los parámetros que tendrá la llamada al script que nos devolverá el resultado. A continuación creamos un objeto <a title="Documentación de Ajax.Request" href="http://www.prototypejs.org/api/ajax/request"><strong>Ajax.Request</strong></a>. Para ello le pasamos como primer parámetro la url del script que nos devolverá la información. A continuación le pasamos las opciones, encerradas entre los corchetes { y } y en el formato opción : valor, y separadas por comas. En nuestro caso le decimos que el método como debe llamar al script es<em> &#8216;get&#8217;</em>, que le pase los parámetros params, que es asíncrono y que cuando se haya finalizado la petición llame a mostrarRespuesta.</p>
<p>Después definimos la función mostrarRespuesta, que lo único que hace es que el contenido del div resultado sea la respuesta de nuestro script. Para ello usamos la función $ que nos devuelve un elemento en función de su id. A la propiedad <em>innerHTML</em> le asignamos <em>xmlHttpRequest.responseText</em>, que contiene la respuesta del script solicitado.</p>
<p>Vamos a ver ahora el script que nos da la respuesta. Un script muy sencillo, pero útil para un ejemplo.</p>
<p><strong>ejemploAJAXconPrototype.php:</strong></p>
<pre class="brush:php">&lt;?php

switch($_GET['textid'])
{
	case 1:
		echo "Texto de ejmplo uno.";
		break;
	case 2:
		echo "Texto de ejmplo dos.";
		break;
	case 3:
		echo "Texto de ejmplo tres.";
		break;
}
?&gt;</pre>
<p>Simplemente en función de la variable <em>textid</em>, el parámetro que le pasamos, nos devuelve un texto u otro.</p>
<p>En este caso, al ser un ejemplo, el texto devuelto es muy simple, pero podríamos haber devuelto la información en formato <a title="XML" href="http://es.wikipedia.org/wiki/XML"><em>XML</em></a> o <a title="JSON" href="http://es.wikipedia.org/wiki/JSON"><em>JSON</em></a> para luego procesarlo mediante JavaScript en nuestra página.</p>
<p>Aquí teneis para descargar los archivos de este tutorial (está incluida la librería Prototype):</p>
<p><a href="http://mjcarrascosa.com/wp-content/uploads/2009/06/ejemploajaxconprototype.zip">ejemplo de AJAX con Prototype</a></p>
]]></content:encoded>
			<wfw:commentRss>http://mjcarrascosa.com/breve-tutorial-de-ajax-con-prototype/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
	</channel>
</rss>

