<?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>Sentido Web &#187; tablas</title>
	<atom:link href="http://sentidoweb.com/tag/tablas/feed" rel="self" type="application/rss+xml" />
	<link>http://sentidoweb.com</link>
	<description>Desarrollo web, HTML, CSS, Javascript, PHP, MySQL</description>
	<lastBuildDate>Tue, 10 Apr 2012 01:02:09 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>Animated Table Sort with REGEXP Friendly</title>
		<link>http://sentidoweb.com/2010/08/13/animated-table-sort-with-regexp-friendly.php</link>
		<comments>http://sentidoweb.com/2010/08/13/animated-table-sort-with-regexp-friendly.php#comments</comments>
		<pubDate>Fri, 13 Aug 2010 10:38:00 +0000</pubDate>
		<dc:creator>displaynone</dc:creator>
				<category><![CDATA[Javascript]]></category>
		<category><![CDATA[Quicklinks]]></category>
		<category><![CDATA[jquery]]></category>
		<category><![CDATA[regexp]]></category>
		<category><![CDATA[tablas]]></category>

		<guid isPermaLink="false">http://www.webappers.com/2010/08/13/animated-table-sort-with-regexp-friendly/</guid>
		<description><![CDATA[Animated Table Sort is a plugin that allows you to animatedly sort a table based on a column’s &#60;td&#62;s, or on the content/value of a child/descendant element within those &#60;td&#62;s. The various &#60;td&#62;s fly to their new homes, giving a nice &#8230; Post original]]></description>
			<content:encoded><![CDATA[<p>Animated Table Sort is a plugin that allows you to animatedly sort a table based on a column’s &lt;td&gt;s, or on the content/value of a child/descendant element within those &lt;td&gt;s. The various &lt;td&gt;s fly to their new homes, giving a nice  &#8230;</p>
<p><a href="http://www.webappers.com/2010/08/13/animated-table-sort-with-regexp-friendly/" title="Animated Table Sort with REGEXP Friendly">Post original</a></p>]]></content:encoded>
			<wfw:commentRss>http://sentidoweb.com/2010/08/13/animated-table-sort-with-regexp-friendly.php/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Drag&amp;Drop de elementos en una tabla</title>
		<link>http://sentidoweb.com/2009/06/30/dragdrop-de-elementos-en-una-tabla.php</link>
		<comments>http://sentidoweb.com/2009/06/30/dragdrop-de-elementos-en-una-tabla.php#comments</comments>
		<pubDate>Wed, 01 Jul 2009 00:00:52 +0000</pubDate>
		<dc:creator>displaynone</dc:creator>
				<category><![CDATA[Javascript]]></category>
		<category><![CDATA[drag and drop]]></category>
		<category><![CDATA[tablas]]></category>

		<guid isPermaLink="false">http://sentidoweb.com/2009/06/30/dragdrop-de-elementos-en-una-tabla.php</guid>
		<description><![CDATA[Interesante Javascript que nos permite mover elementos (drag&#038;drop) de las celdas de una tabla a otras, o incluso a otra tabla. Drag and drop table content with JavaScript Vía / Script &#38; Style]]></description>
			<content:encoded><![CDATA[Interesante Javascript que nos permite mover elementos (drag&#038;drop) de las celdas de una tabla a otras, o incluso a otra tabla.
<img alt="ddtabla.png" src="http://sentidoweb.com/img/2009/06/ddtabla.png" width="450" height="323" />
<a href="http://www.redips.net/javascript/drag-and-drop-table-content/">Drag and drop table content with JavaScript</a>
Vía / <a href="http://scriptandstyle.com/submissions/drag-and-drop-table-content-with-javascript">Script &amp; Style</a>
]]></content:encoded>
			<wfw:commentRss>http://sentidoweb.com/2009/06/30/dragdrop-de-elementos-en-una-tabla.php/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Crear un plugin para WordPress con su propia tabla</title>
		<link>http://sentidoweb.com/2009/04/07/crear-un-plugin-para-wordpress-con-su-propia-tabla.php</link>
		<comments>http://sentidoweb.com/2009/04/07/crear-un-plugin-para-wordpress-con-su-propia-tabla.php#comments</comments>
		<pubDate>Wed, 08 Apr 2009 01:00:00 +0000</pubDate>
		<dc:creator>displaynone</dc:creator>
				<category><![CDATA[WordPress]]></category>
		<category><![CDATA[plugins]]></category>
		<category><![CDATA[tablas]]></category>
		<category><![CDATA[wp]]></category>

		<guid isPermaLink="false">http://sentidoweb.com/2009/04/07/crear-un-plugin-para-wordpress-con-su-propia-tabla.php</guid>
		<description><![CDATA[Interesante artículo en el que nos explican cómo crear un plugin de wordpress usando su propia tabla, algo que no suele necesitarse porque para almacenar datos propios se usan las &#8220;options&#8221;, pero en algún momento podemos necesitarlo. Nos explica paso a paso qué hay que hacer: Declarar la función y las variables globales que se [...]]]></description>
			<content:encoded><![CDATA[<p>Interesante artículo en el que nos explican cómo crear un plugin de wordpress usando su propia tabla, algo que no suele necesitarse porque para almacenar datos propios se usan las &#8220;options&#8221;, pero en algún momento podemos necesitarlo.</p>
<p>Nos explica paso a paso qué hay que hacer:</p>
<ul><li>Declarar la función y las variables globales que se necesitan</li>
<li>Darle un nombre a nuestra tabla y usar el prefijo de WP</li>
<li>Comprobar que la tabla no existe y si no, crearla</li>
<li>Añadir la funcionalidad a WordPress</li>
<li>Añadir datos a la nueva tabla</li></ul>
<p><a href="http://wptoy.com/tips-tricks/create-a-plugin-with-its-own-custom-database-table/">Create a Plugin With Its Own Custom Database Table</a></p>
]]></content:encoded>
			<wfw:commentRss>http://sentidoweb.com/2009/04/07/crear-un-plugin-para-wordpress-con-su-propia-tabla.php/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Nitobi UI: elementos UI para javascript</title>
		<link>http://sentidoweb.com/2009/02/25/nitobi-ui-elementos-ui-para-javascript.php</link>
		<comments>http://sentidoweb.com/2009/02/25/nitobi-ui-elementos-ui-para-javascript.php#comments</comments>
		<pubDate>Wed, 25 Feb 2009 21:25:00 +0000</pubDate>
		<dc:creator>displaynone</dc:creator>
				<category><![CDATA[Javascript]]></category>
		<category><![CDATA[calendarios]]></category>
		<category><![CDATA[grids]]></category>
		<category><![CDATA[tablas]]></category>
		<category><![CDATA[ui]]></category>

		<guid isPermaLink="false">http://sentidoweb.com/2009/02/25/nitobi-ui-elementos-ui-para-javascript.php</guid>
		<description><![CDATA[Impresionante librería para incluir elementos UI en nuestras aplicaciones javascript. Contiene los siguientes elementos: Grid: tabla con celdas estilo hoja de cálculo TreeGrid: igual que el anterior pero permite desplegar filas ComboBox: un combo mas interactivo, como los de auto-sugerencias TabStrip: gestión de pestañas Tree: árbol de datos, tipo directorios/ficheros FishEye: aumentar elementos con efecto [...]]]></description>
			<content:encoded><![CDATA[<p>Impresionante librería para incluir elementos UI en nuestras aplicaciones javascript. Contiene los siguientes elementos:</p>
<ul><li><strong>Grid</strong>: tabla con celdas estilo hoja de cálculo</li>
<li><strong>TreeGrid</strong>: igual que el anterior pero permite desplegar filas</li>
<li><strong>ComboBox</strong>: un combo mas interactivo, como los de auto-sugerencias</li>
<li><strong>TabStrip</strong>: gestión de pestañas</li>
<li><strong>Tree</strong>: árbol de datos, tipo directorios/ficheros</li>
<li><strong>FishEye</strong>: aumentar elementos con efecto &#8220;ojo de pez&#8221;</li>
<li><strong>Callout</strong>: mensajes popup en plan bocadillo</li>
<li><strong>Spotlight</strong>: resaltar elementos DOM, muy útil para realizar guías interactivas</li>
<li><strong>Calendar</strong>: calendarios</li>
<li><strong>Toolkit</strong>: herramientas varias para Ajax</li></ul>
<p><a href="http://www.nitobi.com/products/completeui/demos/explorer/">Nitobi UI</a></p>
]]></content:encoded>
			<wfw:commentRss>http://sentidoweb.com/2009/02/25/nitobi-ui-elementos-ui-para-javascript.php/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Laboratorio: borrar filas de una tabla en Javascript</title>
		<link>http://sentidoweb.com/2006/09/19/laboratorio-borrar-filas-de-una-tabla-en-javascript.php</link>
		<comments>http://sentidoweb.com/2006/09/19/laboratorio-borrar-filas-de-una-tabla-en-javascript.php#comments</comments>
		<pubDate>Tue, 19 Sep 2006 23:00:00 +0000</pubDate>
		<dc:creator>displaynone</dc:creator>
				<category><![CDATA[Javascript]]></category>
		<category><![CDATA[Laboratorio]]></category>
		<category><![CDATA[borrar fila]]></category>
		<category><![CDATA[javascript tablas borrar fila]]></category>
		<category><![CDATA[tablas]]></category>

		<guid isPermaLink="false">http://sentidoweb.com/2006/09/19/laboratorio-borrar-filas-de-una-tabla-en-javascript.php</guid>
		<description><![CDATA[Viendo el otro día la entrada de aNieto2K, recordé el efecto que usa WordPress para resaltar que se ha borrado una fila de una tabla en las herramientas de administración. Se trata de pintar progresivamente la fila en rojo y luego borrarla, consiguiendo así que el usuario se percate de qué ha pasado. Vamos a [...]]]></description>
			<content:encoded><![CDATA[<p>Viendo el otro día la entrada de <a href="http://www.anieto2k.com/2006/09/15/ordena-listas-mediante-javascript-sin-drag-and-drop/">aNieto2K</a>, recordé el efecto que usa <a href="http://Wordpress.org">WordPress</a> para resaltar que se ha borrado una fila de una tabla en las herramientas de administración. Se trata de pintar progresivamente la fila en rojo y luego borrarla, consiguiendo así que el usuario se percate de qué ha pasado.</p>
<p><a href="http://sentidoweb.com/lab/js/borrar-fila/borrar-fila.html"><img alt="borrar-fila.png" src="http://sentidoweb.com/img/2006/09/borrar-fila.png" width="267" height="132" class="center"/></a></p>

<span id="more-507"></span>
<p>Vamos a explicar cómo conseguir este efecto, para ello antes vamos a indicar que para que sea más genérico, los colores de las filas (que son distintos para las filas alternas) van a venir por estilos de clase, no en la propia definición de la etiqueta.</p>
<p>Lo primero que tenemos que hacer es ver los estilos que vamos a usar:</p>
<pre>tr {
background: #FFFFFF;
}
/* Para las filas alternas */
tr.par {
background: #9BCFCF;
}</pre>
<p>Después tendremos que modificar las filas, primero cambiando el estilos de las filas alternas y luego añadiendo un <em>id</em> y el evento <em>onclick</em>.</p>
<pre><code>// Modifica la tabla para diferenciar las filas
function transformar(ok) {
// Obtengo la tabla
var tabla = document.getElementById("tabla");
// Guardo los datos de la tabla y marco filas alternas
for (var i=1; i&lt;tabla.rows.length; i++) {
if (i%2 == 0) {
tabla.rows[i].className = "par";
} else {
// Se tiene que borrar para cuando se redibuja
tabla.rows[i].className = "";
}
// La primera vez se llama a la función con ok=true
// para crear los id y asignar el evento onclick
if (ok) {
var id = "TR"+Math.random();
tabla.rows[i].id = id;
// Se pone en la variable "concurrencia" el id
// para que no se pueda ejecutar la función "borrarFila"
// con otra fila
tabla.rows[i].onclick = function() {concurrencia=id; borrarFila(this.id, 100);}
}
}
}</code></pre>
<p>Después viene la parte que se encarga de borrar las filas, se irá haciendo una llamada sucesiva con un contador que decrementa. El contador llevará el valor del porcentaje de degradado que se está mostrando. Cuando acabe el degradado, se eliminará la fila y se redibujarán las filas alternas.</p>
<pre><code>// Color final que se quiere mostrar
var Rfinal = 255;
var Gfinal = 0;
var Bfinal = 0;
// Incremento en el degradado
var inc = 10;
// Para evitar que se pulsen dos filas a la vez y pueda dar problemas
var concurrencia = "";
// Borra la fila: primero cambiar de color y luego borra la fila
function borrarFila(id, porc) {
if (concurrencia != id) {
var obj = document.getElementById(id);
// Obtengo el color de fondo
var estilo = obj.tagName + (obj.className == ""? "":"."+obj.className);
// Si el objeto no tiene color de fondo
// lo buscamos dentro de los estilos
// y si no se le asigna el blanco
if (obj.style.backgroundColor == "") {
var estilos = document.styleSheets;
for (var i=0; i&lt;estilos.length; i++) {
var rules = (estilos[i].cssRules)?estilos[i].cssRules:estilos[i].rules;
for (j=0; j&lt;rules.length; j++) {
if (rules[j].selectorText.toLowerCase() == estilo.toLowerCase()) {
obj.style.backgroundColor = rules[j].style.backgroundColor;
}
}
}
if (obj.style.backgroundColor == "") {
obj.style.backgroundColor = "#FFFFFF";
}
}
if (obj.style.backgroundColor.charAt(0) == "#") {
obj.style.backgroundColor = cambiaEstiloHex2Dec(obj.style.backgroundColor);
}
// Si se está efectuando el degradado de colores
if (porc &gt;= 0) {
// Se calcula el nuevo color, se trata de
// el incremento o decremento de color
// del color inicial (o actual) hacia el final
var colores = obj.style.backgroundColor.match(/rgb\((\d{1,3})\s*,\s*(\d{1,3})\s*,\s*(\d{1,3})\)/);
var RGB = "rgb(";
RGB += (porc==0? Rfinal:parseInt(parseInt(colores[1])-(colores[1]-Rfinal)/(porc/inc)))+",";
RGB += (porc==0? Gfinal:parseInt(parseInt(colores[2])-(colores[2]-Gfinal)/(porc/inc)))+",";
RGB += (porc==0? Bfinal:parseInt(parseInt(colores[3])-(colores[3]-Bfinal)/(porc/inc)))+")";
obj.style.backgroundColor = RGB;
// Seguimos con el degradado
setTimeout(function() {borrarFila(id, porc-inc);}, 30);
} else {
// Se ha acabado con el degradado
// por lo que se borra
obj.parentNode.removeChild(obj);
// Se redibujan las filas alternas
transformar();
// Se libera el proceso
concurrencia = "";
}
}
}
// Cambiar un color del estilo #RRGGBB por uno del tipo rgb(r, g, b)
function cambiaEstiloHex2Dec(valor) {
var colores = valor.match(/\#([0-9A-F]{2})([0-9A-F]{2})([0-9A-F]{2})/i);
return "rgb("+hex2dec(colores[1])+","+hex2dec(colores[2])+","+hex2dec(colores[3])+")";
}
// Transforma un numero hexadecimal de dos
// en uno decimal
function hex2dec(num) {
var _hex = new Array();
_hex["0"]=0; _hex["1"]=1; _hex["2"]=2; _hex["3"]=3;
_hex["4"]=4; _hex["5"]=5; _hex["6"]=6; _hex["7"]=7;
_hex["8"]=8; _hex["9"]=9; _hex["A"]=10; _hex["B"]=11;
_hex["C"]=12; _hex["D"]=13; _hex["E"]=14; _hex["F"]=15;
if (num.match(/([0-9A-F]){2}/i)) {
return _hex[(num.charAt(0)+"").toUpperCase()]+_hex[(num.charAt(1)+"").toUpperCase()]*16;
}
return 0;
}</code></pre>
<p><a href="http://sentidoweb.com/lab/js/borrar-fila/borrar-fila.html">Ejemplo</a></p>
]]></content:encoded>
			<wfw:commentRss>http://sentidoweb.com/2006/09/19/laboratorio-borrar-filas-de-una-tabla-en-javascript.php/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

