<?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>Artigos sobre jQuery, XHTML, CSS e PHP &#124; Julio Bitencourt &#187; dicas</title>
	<atom:link href="http://www.juliobitencourt.com/tag/dicas/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.juliobitencourt.com</link>
	<description>Artigos e tutoriais sobre desenvolvimento web, jQuery, HTML, PHP, CSS e outras tecnologias.</description>
	<lastBuildDate>Sat, 17 Jul 2010 18:18:29 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.4</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Gerar download de conteúdo no PHP</title>
		<link>http://www.juliobitencourt.com/2009/10/gerar-download-de-conteud-no-php/</link>
		<comments>http://www.juliobitencourt.com/2009/10/gerar-download-de-conteud-no-php/#comments</comments>
		<pubDate>Tue, 13 Oct 2009 10:55:48 +0000</pubDate>
		<dc:creator>Julio Bitencourt</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[arquivo]]></category>
		<category><![CDATA[dicas]]></category>
		<category><![CDATA[download]]></category>
		<category><![CDATA[programação]]></category>

		<guid isPermaLink="false">http://www.juliobitencourt.com/?p=215</guid>
		<description><![CDATA[Se você precisa gerar um relatório para download via PHP mas não quer gerar um arquivo de texto no servidor esta é uma dica bem interessante.
Basta adicionar os seguintes headers HTTP e disponibilizar o nome do arquivo que será sugerido no diálogo de downloads do navegador do usuário.
Exemplo:

1
2
3
header&#40;'Content-Type: application/octet-stream'&#41;;
header&#40;'Content-Disposition: attachment; filename=&#34;' . $nome_do_arquivo . '&#34;'&#41;;
echo [...]]]></description>
			<content:encoded><![CDATA[<p>Se você precisa gerar um relatório para download via PHP mas não quer gerar um arquivo de texto no servidor esta é uma dica bem interessante.<span id="more-215"></span></p>
<p>Basta adicionar os seguintes headers HTTP e disponibilizar o nome do arquivo que será sugerido no diálogo de downloads do navegador do usuário.</p>
<p>Exemplo:</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
</pre></td><td class="code"><pre class="php" style="font-family:monospace;"><span style="color: #990000;">header</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'Content-Type: application/octet-stream'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #990000;">header</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'Content-Disposition: attachment; filename=&quot;'</span> <span style="color: #339933;">.</span> <span style="color: #000088;">$nome_do_arquivo</span> <span style="color: #339933;">.</span> <span style="color: #0000ff;">'&quot;'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #990000;">echo</span> <span style="color: #0000ff;">&quot;etc etc etc&quot;</span><span style="color: #339933;">;</span></pre></td></tr></table></div>

<p>Tudo que você escrever via echo será o conteúdo do arquivo gerado.<br />
<h3 class='related_post_title'>Já que chegou até aqui, que tal ler isto?</h3>
<ul class='related_post'>
<li><a href='http://www.juliobitencourt.com/2009/10/saiba-se-uma-requisicao-foi-feita-via-ajax-no-php/' title='Saiba se uma requisição foi feita via AJAX no PHP'>Saiba se uma requisição foi feita via AJAX no PHP</a></li>
<li><a href='http://www.juliobitencourt.com/2009/08/funcao-closest-da-jquery/' title='Função closest() da jQuery'>Função closest() da jQuery</a></li>
</ul>


<!-- Begin TwitThis script (http://twitthis.com/) -->
<div style="text-align:left;">
<script type="text/javascript" src="http://s3.chuug.com/chuug.twitthis.scripts/twitthis.js"></script>
<script type="text/javascript">
<!--
document.write('<a href="javascript:;" onclick="TwitThis.pop();"><img src="http://s3.chuug.com/chuug.twitthis.resources/twitthis_grey_72x22.gif" alt="TwitThis" style="border:none;" /></a>');
//-->
</script>
</div>
<!-- /End -->

<!-- boo-widget start -->
					<script type="text/javascript">
					bb_keywords = "programação";
					bb_bid  = "";
					bb_lang  = "";
					bb_name = "custom";bb_limit = "7";bb_format = "bbc";</script>
					<script type="text/javascript" src="http://widgets.boo-box.com/javascripts/embed.js"></script>
					<!-- boo-widget end -->]]></content:encoded>
			<wfw:commentRss>http://www.juliobitencourt.com/2009/10/gerar-download-de-conteud-no-php/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Função closest() da jQuery</title>
		<link>http://www.juliobitencourt.com/2009/08/funcao-closest-da-jquery/</link>
		<comments>http://www.juliobitencourt.com/2009/08/funcao-closest-da-jquery/#comments</comments>
		<pubDate>Wed, 19 Aug 2009 01:55:13 +0000</pubDate>
		<dc:creator>Julio Bitencourt</dc:creator>
				<category><![CDATA[CSS]]></category>
		<category><![CDATA[Javascript]]></category>
		<category><![CDATA[jQuery]]></category>
		<category><![CDATA[dicas]]></category>
		<category><![CDATA[dom]]></category>
		<category><![CDATA[html]]></category>

		<guid isPermaLink="false">http://www.juliobitencourt.com/?p=121</guid>
		<description><![CDATA[Introduzida na versão 1.3 do jQuery a função closest() retorna o elemento pai mais próximo encontrado. Conforme o seletor passado no parâmetro. Complicado? Não! Veja o exemplo:
Digamos que ao clicar em um link em determinada linha de uma tabela você queira alterar a cor de fundo de toda a linha.
Segue o código:

$&#40;document&#41;.ready&#40;function&#40;&#41;&#123;
	$&#40;&#34;a&#34;&#41;.click&#40;function&#40;&#41;&#123;
		$&#40;this&#41;.closest&#40;&#34;tr&#34;&#41;.children&#40;&#34;td&#34;&#41;.toggleClass&#40;&#34;highlight&#34;&#41;;
		return false;
	&#125;&#41;;
&#125;&#41;;

Na linha 2 [...]]]></description>
			<content:encoded><![CDATA[<p>Introduzida na versão 1.3 do <a class="bbli" href="http://sledge.boo-box.com/list/page/alF1ZXJ5XyMjX2JveF8jI190YWdnaW5nLXRvb2wtd3BfIyNf-48">jQuery<img class="bbic" src="http://boo-box.com/bbli" alt="[bb]" /></a> a função closest() retorna o elemento pai mais próximo encontrado. Conforme o seletor passado no parâmetro. Complicado? Não! <span id="more-121"></span>Veja o exemplo:</p>
<p>Digamos que ao clicar em um link em determinada linha de uma tabela você queira alterar a cor de fundo de toda a linha.</p>
<p>Segue o código:</p>

<div class="wp_syntax"><div class="code"><pre class="javascript" style="font-family:monospace;">$<span style="color: #009900;">&#40;</span>document<span style="color: #009900;">&#41;</span>.<span style="color: #660066;">ready</span><span style="color: #009900;">&#40;</span><span style="color: #003366; font-weight: bold;">function</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
	$<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;a&quot;</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">click</span><span style="color: #009900;">&#40;</span><span style="color: #003366; font-weight: bold;">function</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
		$<span style="color: #009900;">&#40;</span><span style="color: #000066; font-weight: bold;">this</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">closest</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;tr&quot;</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">children</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;td&quot;</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">toggleClass</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;highlight&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		<span style="color: #000066; font-weight: bold;">return</span> <span style="color: #003366; font-weight: bold;">false</span><span style="color: #339933;">;</span>
	<span style="color: #009900;">&#125;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></div></div>

<p>Na linha 2 atribuímos uma função ao evento click dos elementos <strong>a</strong> (links).</p>
<p>Na linha 3 usamos a função <strong>closest()</strong> com o seletor <strong>tr</strong>. Ou seja, buscamos o elemento tr mais próximo ao link que foi clicado que é retornado através do objeto <strong>this</strong>.</p>
<p>Na mesma linha 3 usamos a função <strong>toggleClass</strong> para atribuir à linha a class <strong>highlight</strong>. A função <strong>toggleClass</strong> alterna o atributo class de modo que caso o elemento tenha a classe, a mesma é retirada. E vice-versa.</p>
<p>Reparem que fizemos as chamadas as funções <strong>closest()</strong> e <strong>toggleClass()</strong> de forma encadeada. Ou seja, em sequencia.<br />
Caso tenham dúvidas sobre o encadeamento de funções ou sobre a função <strong>toggleClass</strong>, podem perguntar através dos comentários.</p>
<p>Na linha 4 usamos <strong>return false</strong> para que o evento do clique no link seja cancelado no browser.</p>
<p>Simples assim! <a title="Exemplo de funcionamento da função closest() com jQuery" href="http://www.juliobitencourt.com/exemplos/funcao_closest_da_jquery.html">Clique aqui</a> para ver o exemplo em funcionamento.<br />
<h3 class='related_post_title'>Já que chegou até aqui, que tal ler isto?</h3>
<ul class='related_post'>
<li><a href='http://www.juliobitencourt.com/2009/08/metodo-data-da-jquery/' title='Método data() da jQuery'>Método data() da jQuery</a></li>
<li><a href='http://www.juliobitencourt.com/2009/08/funcao-live-da-jquery/' title='Função live() da jQuery'>Função live() da jQuery</a></li>
<li><a href='http://www.juliobitencourt.com/2009/10/10-dicas-para-escrever-um-bom-codigo-jquery/' title='10 dicas para escrever um bom código jQuery'>10 dicas para escrever um bom código jQuery</a></li>
<li><a href='http://www.juliobitencourt.com/2009/10/saiba-se-uma-requisicao-foi-feita-via-ajax-no-php/' title='Saiba se uma requisição foi feita via AJAX no PHP'>Saiba se uma requisição foi feita via AJAX no PHP</a></li>
<li><a href='http://www.juliobitencourt.com/2009/10/gerar-download-de-conteud-no-php/' title='Gerar download de conteúdo no PHP'>Gerar download de conteúdo no PHP</a></li>
</ul>


<!-- Begin TwitThis script (http://twitthis.com/) -->
<div style="text-align:left;">
<script type="text/javascript" src="http://s3.chuug.com/chuug.twitthis.scripts/twitthis.js"></script>
<script type="text/javascript">
<!--
document.write('<a href="javascript:;" onclick="TwitThis.pop();"><img src="http://s3.chuug.com/chuug.twitthis.resources/twitthis_grey_72x22.gif" alt="TwitThis" style="border:none;" /></a>');
//-->
</script>
</div>
<!-- /End -->

<!-- boo-widget start -->
					<script type="text/javascript">
					bb_keywords = "html";
					bb_bid  = "";
					bb_lang  = "";
					bb_name = "custom";bb_limit = "7";bb_format = "bbc";</script>
					<script type="text/javascript" src="http://widgets.boo-box.com/javascripts/embed.js"></script>
					<!-- boo-widget end -->]]></content:encoded>
			<wfw:commentRss>http://www.juliobitencourt.com/2009/08/funcao-closest-da-jquery/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
	</channel>
</rss>
