<?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>Sergio Pacho Benedé</title>
	<atom:link href="http://sergiopacho.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://sergiopacho.com</link>
	<description>Blog técnico y personal</description>
	<lastBuildDate>Sun, 04 Jul 2010 17:25:19 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2.1</generator>
		<item>
		<title>Transportar y ejecutar proyectos Web en un pendrive usando los VirtualHost de Apache con Ubuntu</title>
		<link>http://sergiopacho.com/2010/06/transportar-y-ejecutar-proyectos-web-en-un-pendrive-usando-los-virtualhost-de-apache-con-ubuntu/</link>
		<comments>http://sergiopacho.com/2010/06/transportar-y-ejecutar-proyectos-web-en-un-pendrive-usando-los-virtualhost-de-apache-con-ubuntu/#comments</comments>
		<pubDate>Wed, 09 Jun 2010 08:15:51 +0000</pubDate>
		<dc:creator>Sergio</dc:creator>
				<category><![CDATA[Apache]]></category>
		<category><![CDATA[Destacados]]></category>
		<category><![CDATA[Ubuntu]]></category>
		<category><![CDATA[pendrive]]></category>
		<category><![CDATA[USB]]></category>
		<category><![CDATA[VirtualHost]]></category>

		<guid isPermaLink="false">http://sergiopacho.com/?p=106</guid>
		<description><![CDATA[Actualizado el 4 Julio, 2010 Si eres de los que trabaja indistintamente en varios equipos (sobremesa, portátil, etc&#8230;) te habrás encontrado en bastantes ocasiones con la necesidad de copiar todo el trabajo hecho desde el disco duro de un equipo a un pendrive y volver a volcarlo en el disco duro de otro equipo. Si [...]]]></description>
			<content:encoded><![CDATA[<p><strong>Actualizado el 4 Julio, 2010</strong></p>
<p>Si eres de los que trabaja indistintamente en varios equipos (sobremesa, portátil, etc&#8230;) te habrás encontrado en bastantes ocasiones con la necesidad de copiar todo el trabajo hecho desde el disco duro de un equipo a un pendrive y volver a volcarlo en el disco duro de otro equipo. Si no lo tienes que hacer muy a menudo no hay ningún problema, pero si es una tarea diaria se puede convertir en un fastidio, sobretodo cuando empiezas a no tener claro si la última versión de tu proyecto la tienes en el portátil, en el PC de sobremesa, o en aquel pendrive de color amarillo. O era el rojo?</p>
<p>Para evitar esto lo ideal es tener el código centralizado. Una opción sería trabajar directamente con el código &#8220;on-line&#8221;. Muchos entornos de desarrollo permiten añadir cuentas de FTP a su explorador, de manera que podrías abrir y editar los archivos directamente en tu servidor. En mi opinión esta opción no es nada recomendable, pero se puede usar en casos muy puntuales.</p>
<p>Otra forma de hacerlo es teniendo nuestros archivos en un pendrive y trabajando directamente sobre ellos. Es la opción que estoy usando últimamente y funciona bastante bien gracias a los VirtualHost de Apache. Tiene alguna desventaja, como por ejemplo si trabajas con bases de datos tendrás que tenerla instalada localmente en cada equipo y no en el pendrive. Algo que tampoco he conseguido es que la web se pueda ejecutar indistamente en equipos que utilicen diferente S.O, por ejemplo Ubuntu y Windows. Por temas de permisos será necesario formatear el pendrive con un sistema de archivos adecuado a nuestro S.O. haciéndolo, en algunos casos, inutilizable en otro S.O.</p>
<p><strong>Instrucciones para Ubuntu</strong></p>
<p>a) Lo primero que haremos será formatear un pendrive desde <strong>Sistema -> Administración -> Utilidad de discos</strong> con el sistema de archivos <strong>Ext4</strong> y el tipo de partición <strong>Linux (0&#215;83)</strong>. También le pondremos una etiqueta al volumen, por ejemplo <strong>proyectos</strong>.</p>
<p>b) Para crear el virtual host para nuestro dominio <strong>ejemplo.com</strong> abrimos un terminal desde <strong>Aplicaciones -> Accesorios -> Terminal</strong> y tecleamos en la consola</p>
<pre class="brush: plain; title: ; toolbar: false; notranslate">
cd /etc/apache2/sites-available
</pre>
<p>c) Copiamos el esquema por defecto</p>
<pre class="brush: plain; title: ; toolbar: false; notranslate">
sudo cp default ejemplo.com
</pre>
<p>d) Editamos el esquema recién creado</p>
<pre class="brush: plain; title: ; toolbar: false; notranslate">
sudo gedit ejemplo.com
</pre>
<p>Debería quedarnos algo parecido a esto</p>
<pre class="brush: plain; highlight: [3,5,10,33]; title: ; notranslate">
&lt;VirtualHost *:80&gt;
	ServerAdmin webmaster@localhost
	ServerName ejemplo.com

	DocumentRoot /media/proyectos/www/ejemplo
	&lt;Directory /&gt;
		Options FollowSymLinks
		AllowOverride All
	&lt;/Directory&gt;
	&lt;Directory /media/proyectos/www/ejemplo &gt;
		Options Indexes FollowSymLinks MultiViews
		AllowOverride All
		Order allow,deny
		allow from all
	&lt;/Directory&gt;

	ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
	&lt;Directory &quot;/usr/lib/cgi-bin&quot;&gt;
		AllowOverride None
		Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
		Order allow,deny
		Allow from all
	&lt;/Directory&gt;

	ErrorLog /var/log/apache2/error.log

	# Possible values include: debug, info, notice, warn, error, crit,
	# alert, emerg.
	LogLevel warn

	CustomLog /var/log/apache2/access.log combined

    Alias /javascript /media/proyectos/www/ejemplo/javascript
    Alias /doc/ &quot;/usr/share/doc/&quot;
    &lt;Directory &quot;/usr/share/doc/&quot;&gt;
        Options Indexes MultiViews FollowSymLinks
        AllowOverride None
        Order deny,allow
        Deny from all
        Allow from 127.0.0.0/255.0.0.0 ::1/128
    &lt;/Directory&gt;

&lt;/VirtualHost&gt;
</pre>
<p>e) Guardamos el archivo y activamos el nuevo host virtual</p>
<pre class="brush: plain; title: ; toolbar: false; notranslate">
sudo a2ensite ejemplo.com
</pre>
<p>f) Editamos el archivo <strong>/etc/hosts</strong></p>
<pre class="brush: plain; title: ; toolbar: false; notranslate">
sudo gedit /etc/hosts
</pre>
<p>y añadimos la entrada de nuestro dominio</p>
<pre class="brush: plain; title: ; toolbar: false; notranslate">
127.0.0.1 ejemplo.com
</pre>
<p>g) Reiniciamos el servidor Apache</p>
<pre class="brush: plain; title: ; toolbar: false; notranslate">
sudo /etc/init.d/apache2 restart
</pre>
<p>h) Insertamos el pendrive y le damos los permisos adecuados para poder acceder a nuestro proyecto web desde el navegador</p>
<pre class="brush: plain; title: ; toolbar: false; notranslate">
cd /media
chmod 755 proyectos
</pre>
<p>i) Creamos los directorios necesarios en el pendrive</p>
<pre class="brush: plain; title: ; toolbar: false; notranslate">
cd proyectos
mkdir www
cd www
mkdir ejemplo
</pre>
<p>j) Ya podemos crear nuestro proyecto <strong>ejemplo.com</strong>, guardarlo en <strong>/media/proyectos/www/ejemplo</strong> y visualizarlo con el navegador entrando en <strong>http://ejemplo.com</strong></p>
<p>Espero que te sea de utilidad. Próximamente publicaré las instrucciones para Windows.</p>
]]></content:encoded>
			<wfw:commentRss>http://sergiopacho.com/2010/06/transportar-y-ejecutar-proyectos-web-en-un-pendrive-usando-los-virtualhost-de-apache-con-ubuntu/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Instalando Eclipse 3.5 Galileo + PDT 2.2 en Ubuntu 10.04 LTS</title>
		<link>http://sergiopacho.com/2010/05/eclipse-3-5-pdt-2-2-ubuntu-10-04/</link>
		<comments>http://sergiopacho.com/2010/05/eclipse-3-5-pdt-2-2-ubuntu-10-04/#comments</comments>
		<pubDate>Mon, 10 May 2010 13:22:20 +0000</pubDate>
		<dc:creator>Sergio</dc:creator>
				<category><![CDATA[Destacados]]></category>
		<category><![CDATA[Eclipse]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Ubuntu]]></category>
		<category><![CDATA[programacion]]></category>

		<guid isPermaLink="false">http://sergiopacho.com/?p=88</guid>
		<description><![CDATA[Este fin de semana he empezado a experimentar con Ubuntu 10.04 LTS, la última versión de este sistema operativo de código abierto, que espero que me lleve al abandono definitivo de Windows, al menos en el equipo de sobremesa. Tras pasar todo el correo de Outlook a Evolution con ayuda de la herramienta readpst y [...]]]></description>
			<content:encoded><![CDATA[<p>Este fin de semana he empezado a experimentar con <a href="http://www.ubuntu.com" target="_blank">Ubuntu 10.04 LTS</a>, la última versión de este sistema operativo de código abierto, que espero que me lleve al abandono definitivo de Windows, al menos en el equipo de sobremesa.</p>
<p>Tras pasar todo el correo de Outlook a Evolution con ayuda de la herramienta <a href="http://www.guia-ubuntu.org/index.php?title=Correo_electr%C3%B3nico" target="_blank">readpst</a> y configurar las cosas más básicas he instalado el entorno de desarrollo <a href="http://www.eclipse.org" target="_blank">Eclipse</a> junto con las PDT (PHP Development Tools). Buena parte de la información que hay disponible en la red para su instalación hace referencia a versiones anteriores de Ubuntu y Eclipse y siguiendo esas instrucciones poco a poco la cosa se ha ido enredando&#8230;</p>
<p>Para una instalación básica del entorno de desarrollo en PHP no hace falta complicarse tanto y se puede hacer siguiendo estos pasos:</p>
<p>Entramos en <strong>Aplicaciones -> Centro de software de Ubuntu</strong> y tecleamos <em>eclipse</em> en el buscador. Seleccionamos <strong>Eclipse</strong> en la lista y lo instalamos.</p>
<p><a href="http://i40.tinypic.com/11kwbd1.jpg" target="_blank"><img src="http://i40.tinypic.com/11kwbd1.jpg" alt="Instalando Eclipse 3.5 Galileo + PDT 2.2 en Ubuntu 10.04 LTS (1/6)" width="600" /></a></p>
<p>Una vez instalado Eclipse seleccionamos <strong>Eclipse Plug-in Development Environment (PDE)</strong> en la misma lista y lo instalamos también.</p>
<p><a href="http://i42.tinypic.com/2s18yt1.jpg" target="_blank"><img src="http://i42.tinypic.com/2s18yt1.jpg" alt="Instalando Eclipse 3.5 Galileo + PDT 2.2 en Ubuntu 10.04 LTS (2/6)" width="600" /></a></p>
<p>Ya lo tenemos instalado. Nos vamos al menú <strong>Aplicaciones -> Programación</strong> de Ubuntu y ya nos aparece <strong>Eclipse</strong>. Abrimos la aplicación.</p>
<p><a href="http://i43.tinypic.com/29ym3cj.jpg" target="_blank"><img src="http://i43.tinypic.com/29ym3cj.jpg" alt="Instalando Eclipse 3.5 Galileo + PDT 2.2 en Ubuntu 10.04 LTS (3/6)" width="600" /></a></p>
<p>Entramos en la opción <strong>Help -> Install New Software&#8230;</strong> de Eclipse y añadimos estos dos sitios de software clicando en <strong>Add</strong>.</p>
<pre class="brush: plain; auto-links: false; gutter: false; title: ; notranslate">
Name: DLTK 2.0
Location: http://download.eclipse.org/technology/dltk/updates-dev/2.0/
</pre>
<pre class="brush: plain; auto-links: false; gutter: false; title: ; notranslate">
Name: PDT 2.2
Location: http://download.eclipse.org/tools/pdt/updates/2.2/interim/
</pre>
<p>Seleccionamos en la lista el segundo de los sitios que hemos añadido. Aparecerá una lista de los paquetes disponibles para instalar. Le damos a la flecha que hay delante del nombre del paquete para ver que características contiene. Podemos elegir las que queramos, de momento instalamos solamente el <strong>Runtime Feature</strong>.</p>
<p><a href="http://i39.tinypic.com/qpo6qw.jpg" target="_blank"><img src="http://i39.tinypic.com/qpo6qw.jpg" alt="Instalando Eclipse 3.5 Galileo + PDT 2.2 en Ubuntu 10.04 LTS (4/6)" width="600" /></a></p>
<p>Clicamos en <strong>Next</strong>, aceptamos los Términos y procedemos con la instalación. Una vez instalado reiniciamos Eclipse para que los cambios se apliquen sin problemas.</p>
<p>Abrimos otra vez Eclipse y clicamos en <strong>Window -> Open Perspective -> Other&#8230;</strong>. Ahí podemos seleccionar la perspectiva de PHP y a partir de ahora tendremos una nueva pestaña para cambiar la perspectiva.</p>
<p><a href="http://i43.tinypic.com/2cf2ww4.jpg" target="_blank"><img src="http://i43.tinypic.com/2cf2ww4.jpg" alt="Instalando Eclipse 3.5 Galileo + PDT 2.2 en Ubuntu 10.04 LTS (5/6)" width="600" /></a></p>
<p>Ya estamos listos para empezar a crear nuestros proyectos en PHP con Eclipse.</p>
<p><a href="http://i44.tinypic.com/2yo7128.jpg" target="_blank"><img src="http://i44.tinypic.com/2yo7128.jpg" alt="Instalando Eclipse 3.5 Galileo + PDT 2.2 en Ubuntu 10.04 LTS (6/6)" width="600" /></a></p>
<p>Buena programación! <img src='http://sergiopacho.com/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://sergiopacho.com/2010/05/eclipse-3-5-pdt-2-2-ubuntu-10-04/feed/</wfw:commentRss>
		<slash:comments>18</slash:comments>
		</item>
		<item>
		<title>Integrar SwiftMailer en KumbiaPHP</title>
		<link>http://sergiopacho.com/2010/05/integrar-swiftmailer-en-kumbiaphp/</link>
		<comments>http://sergiopacho.com/2010/05/integrar-swiftmailer-en-kumbiaphp/#comments</comments>
		<pubDate>Sat, 01 May 2010 09:34:27 +0000</pubDate>
		<dc:creator>Sergio</dc:creator>
				<category><![CDATA[Destacados]]></category>
		<category><![CDATA[KumbiaPHP Framework]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[kumbiaphp]]></category>
		<category><![CDATA[programacion]]></category>
		<category><![CDATA[swiftmailer]]></category>

		<guid isPermaLink="false">http://sergiopacho.com/?p=69</guid>
		<description><![CDATA[Muchas veces necesitamos enviar algún correo desde nuestras aplicaciones en PHP, ya sea para suscribir al usuario a una lista, confirmar su alta en nuestra web, notificar al administrador de algún suceso, etc&#8230; Normalmente tenemos a nuestra disposición la función mail() de PHP pero si queremos mayor flexibilidad y potencia lo recomendable es usar alguna [...]]]></description>
			<content:encoded><![CDATA[<p>Muchas veces necesitamos enviar algún correo desde nuestras aplicaciones en PHP, ya sea para suscribir al usuario a una lista, confirmar su alta en nuestra web, notificar al administrador de algún suceso, etc&#8230; Normalmente tenemos a nuestra disposición la función <a href="http://php.net/mail" target="_blank">mail()</a> de PHP pero si queremos mayor flexibilidad y potencia lo recomendable es usar alguna librería específica para envío de correo.</p>
<p>La versión <a href="http://www.kumbiaphp.com/blog/manuales-y-descargas/" target="_blank">1.0 Spirit beta1</a> de <a href="http://www.kumbiaphp.com" target="_blank">KumbiaPHP Framework</a> incluye <a href="http://phpmailer.worxware.com/" target="_blank">PHPMailer</a> y puedes encontrar un <a href="http://cachi.temiga.org/2007/06/04/como-utilizar-phpmailer-desde-kumbia/" target="_blank">artículo</a> sobre su uso en el blog de <a href="http://cachi.temiga.org/" target="_blank">CaChi</a>.</p>
<p>En este artículo vamos a ver como integrar en KumbiaPHP otra librería para envío de correo, en este caso <a href="http://swiftmailer.org/" target="_blank">SwiftMailer</a>. Es realmente sencillo.</p>
<p>Lo primero será bajarse la <a href="http://swiftmailer.org/download" target="_blank">última versión disponible de la librería</a>.</p>
<p>Una vez lo tengamos, descomprimos el archivo. Si nos queda un archivo <em>.tar</em> volvemos a descomprimir. Ya tenemos la estructura de directorios y archivos. Lo siguiente es entrar en la carpeta <strong>core/vendors</strong> de KumbiaPHP y ahí crear la carpeta <strong>swiftmailer</strong>. Una vez lo tenemos volvemos a la estructura de archivos de SwiftMailer y copiamos todo el contenido de la carpeta <b>lib</b> dentro de la carpeta <b>swiftmailer</b> que acabamos de crear, tal que así:</p>
<p><a href="http://i42.tinypic.com/2m7carb.gif" target="_blank"><img src="http://i42.tinypic.com/2m7carb.gif" alt="Estructura de SwiftMailer dentro de KumbiaPHP" width="600" /></a></p>
<p>A continuación entraremos en la carpeta <strong>core/libs</strong> de KumbiaPHP y crearemos de nuevo una carpeta con nombre <strong>swiftmailer</strong>. Una vez creada entramos y creamos el archivo <b>swiftmailer.php</b> que deberá tener estas líneas:</p>
<pre class="brush: php; title: ; notranslate">
&lt;?php

require_once CORE_PATH . 'vendors/swiftmailer/swift_required.php';
</pre>
<p>Con eso la librería SwiftMailer ya habrá quedado integrada en nuestra instalación de KumbiaPHP.</p>
<p>Para utilizarla basta simplemente con cargar la librería desde nuestra aplicación con <strong>Load::lib(&#8216;swiftmailer&#8217;);</strong>.</p>
<pre class="brush: php; highlight: [1]; title: ; notranslate">
Load::lib('swiftmailer');
$transport = Swift_MailTransport::newInstance();
$mailer = Swift_Mailer::newInstance($transport);
$message = Swift_Message::newInstance('Probando envío con SwiftMailer')
	-&gt;setFrom(array('sergio@example.com' =&gt; 'Sergio Pacho'))
	-&gt;setTo(array('destinatario1@example.com', 'destinatario2@example.com'))
	-&gt;setBody('Esto es el cuerpo del mensaje')
;
$result = $mailer-&gt;send($message);
</pre>
<p>Espero que te sea de utilidad.</p>
]]></content:encoded>
			<wfw:commentRss>http://sergiopacho.com/2010/05/integrar-swiftmailer-en-kumbiaphp/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Listas enlazadas con jQuery en KumbiaPHP</title>
		<link>http://sergiopacho.com/2010/04/listas-enlazadas-jquery-kumbiaphp/</link>
		<comments>http://sergiopacho.com/2010/04/listas-enlazadas-jquery-kumbiaphp/#comments</comments>
		<pubDate>Thu, 22 Apr 2010 19:49:30 +0000</pubDate>
		<dc:creator>Sergio</dc:creator>
				<category><![CDATA[Destacados]]></category>
		<category><![CDATA[KumbiaPHP Framework]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[jquery]]></category>
		<category><![CDATA[kumbiaphp]]></category>
		<category><![CDATA[programacion]]></category>

		<guid isPermaLink="false">http://sergiopacho.com/?p=9</guid>
		<description><![CDATA[Al crear nuestros formularios de entrada de datos es habitual encontrar casos en los que necesitamos que una lista desplegable se rellene con unos determinados valores, los cuáles dependen del valor seleccionado en otra lista. Para evitar tener que cargar todos los valores posibles de una vez, o molestar al usuario con recargas de página [...]]]></description>
			<content:encoded><![CDATA[<p>Al crear nuestros formularios de entrada de datos es habitual encontrar casos en los que necesitamos que una lista desplegable se rellene con unos determinados valores, los cuáles dependen del valor seleccionado en otra lista. Para evitar tener que cargar todos los valores posibles de una vez, o molestar al usuario con recargas de página para actualizar las listas con sus valores correspondientes, podemos recurrir al uso de <a href="http://es.wikipedia.org/wiki/AJAX" target="_blank">AJAX</a>. Para facilitar al máximo la tarea lo más recomendable es usar una librería como <a href="http://jquery.com/" target="_blank">jQuery</a>.</p>
<p>En la <a href="http://wiki.kumbiaphp.com/Principal" target="_blank">Wiki de KumbiaPHP</a> tenemos un muy buen ejemplo sobre el uso de <a href="http://wiki.kumbiaphp.com/Listas_simples_enlazadas_jquery" target="_blank">listas enlazadas con jQuery</a> para la inserción de nuevos registros en la base de datos.</p>
<p>En este artículo aprovecharemos el citado ejemplo y veremos como adaptarlo para que el mismo sistema de listas enlazadas con jQuery nos sirva a la hora de editar un registro existente.</p>
<p>En primer lugar añadiremos el método <em>edit</em> en nuestro controlador: <strong>clientes_controller.php</strong>.</p>
<pre class="brush: php; title: ; notranslate">
public function edit($id = null)
{
  if ($id)
    $this-&gt;clientes = $this-&gt;Clientes-&gt;find($id);

  if ($this-&gt;has_post('clientes'))
  {
    if (!$this-&gt;Clientes-&gt;update($this-&gt;post('clientes')))
    {
      Flash:error('Fallo Operación');
      $this-&gt;clientes = $this-&gt;post('clientes');
    } else {
      Router::route_to('action: index');
    }
  }
}
</pre>
<p>A continuación añadiremos algo de código a los métodos <em>getComunas</em> y <em>getCiudades</em> del controlador: <strong>clientes_controller.php</strong>.</p>
<pre class="brush: php; highlight: [6,7,15,16]; title: ; notranslate">
public function getComunas(){
  $this-&gt;set_response('view');
  $comunas = new Comunas();
  $this-&gt;comunas = $comunas-&gt;buscar($this-&gt;post('regiones_id'));

  if ($this-&gt;has_post('comunas_id'))
    $this-&gt;clientes-&gt;comunas_id = $this-&gt;post('comunas_id');
}

public function getCiudades(){
  $this-&gt;set_response('view');
  $ciudades = new Ciudades();
  $this-&gt;ciudades = $ciudades-&gt;buscar($this-&gt;post('comunas_id'));

  if ($this-&gt;has_post('ciudades_id'))
    $this-&gt;clientes-&gt;ciudades_id = $this-&gt;post('ciudades_id');
}
</pre>
<p>Con las líneas que hemos añadido podremos saber no sólo que valores deberá tener la lista sino también cuál de esos valores deberá estar seleccionado. Para completar esta funcionalidad crearemos la vista: <strong>edit.phtml</strong>.</p>
<pre class="brush: php; highlight: [37,39,43,49,51,55]; html-script: true; title: ; notranslate">
&lt;?php View::content(); ?&gt;
&lt;?php echo form_tag(&quot;$controller_name/$action_name&quot;); ?&gt;
&lt;table id='table_forms'&gt;
	&lt;tr&gt;
		&lt;th&gt;Región&lt;/th&gt;
		&lt;td&gt;
		&lt;?php echo select_tag(array('clientes.regiones_id', $regiones, 'option' =&gt; 'nombre', 'include_blank' =&gt; 'Seleccione...')); ?&gt;
		&lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr&gt;
		&lt;th&gt;Comuna&lt;/th&gt;
		&lt;td&gt;&lt;div id='div_comunas'&gt;&lt;/div&gt;&lt;/td&gt;&lt;td&gt;
	&lt;/td&gt;&lt;/tr&gt;
	&lt;tr&gt;
		&lt;th&gt;Ciudad&lt;/th&gt;
		&lt;td&gt;&lt;div id='div_ciudades'&gt;&lt;/div&gt;&lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr&gt;
		&lt;?php echo hidden_field_tag(array('clientes.id')) ?&gt;
		&lt;td colspan=&quot;2&quot; align=&quot;center&quot;&gt;&lt;?php echo submit_tag('Actualizar')?&gt;&lt;/td&gt;
	&lt;/tr&gt;
&lt;/table&gt;
&lt;?php echo end_form_tag(); ?&gt;

&lt;script type='text/javascript'&gt;
$(&quot;#clientes_regiones_id&quot;).change(function(){
    var regiones_id = $('#clientes_regiones_id').val();
    $.ajax({
        type: &quot;POST&quot;,
        url: &quot;&lt;?php echo PUBLIC_PATH . 'clientes/getComunas/'; ?&gt;&quot;,
        data: &quot;regiones_id=&quot; + regiones_id,
        success: function(html){
            $(&quot;#div_comunas&quot;).html(html);
        }
    });
});
$(window).load(function(){
    var regiones_id = &quot;&lt;?php echo $clientes-&gt;regiones_id ?&gt;&quot;;
    var comunas_id = &quot;&lt;?php echo $clientes-&gt;comunas_id ?&gt;&quot;;
    $.ajax({
        type: &quot;POST&quot;,
        url: &quot;&lt;?php echo PUBLIC_PATH . 'clientes/getComunas/'; ?&gt;&quot;,
        data: &quot;regiones_id=&quot; + regiones_id + &quot;&amp;comunas_id=&quot; + comunas_id,
        success: function(html){
            $(&quot;#div_comunas&quot;).html(html);
        }
    });
});
$(window).load(function(){
    var comunas_id = &quot;&lt;?php echo $clientes-&gt;comunas_id ?&gt;&quot;;
    var ciudades_id = &quot;&lt;?php echo $clientes-&gt;ciudades_id ?&gt;&quot;;
    $.ajax({
        type: &quot;POST&quot;,
        url: &quot;&lt;?php echo PUBLIC_PATH . 'clientes/getCiudades/'; ?&gt;&quot;,
        data: &quot;comunas_id=&quot; + comunas_id + &quot;&amp;ciudades_id=&quot; + ciudades_id,
        success: function(html){
            $(&quot;#div_ciudades&quot;).html(html);
        }
    });
});
&lt;/script&gt;
</pre>
<p>Como puedes ver, es bastante parecida a la vista que utilizamos para crear un nuevo registro, sólo que en este caso hemos añadido más código para que en el momento en que se carga la página se rellenen todas las listas desplegables con los valores que corresponden y con el valor correctamente seleccionado. Fíjate especialmente en las líneas resaltadas para entender mejor su funcionamiento.</p>
<p>Espero que te sea de utilidad.</p>
]]></content:encoded>
			<wfw:commentRss>http://sergiopacho.com/2010/04/listas-enlazadas-jquery-kumbiaphp/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
	</channel>
</rss>

