<?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>Diário de Códigos &#187; Ajax</title>
	<atom:link href="http://diariodecodigos.info/tag/ajax/feed/" rel="self" type="application/rss+xml" />
	<link>http://diariodecodigos.info</link>
	<description>Codigos Fonte, Artigos e Dicas</description>
	<lastBuildDate>Tue, 03 May 2011 17:42:33 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0</generator>
		<item>
		<title>JSON + JQuery</title>
		<link>http://diariodecodigos.info/2009/11/json-jquery/</link>
		<comments>http://diariodecodigos.info/2009/11/json-jquery/#comments</comments>
		<pubDate>Thu, 26 Nov 2009 14:19:43 +0000</pubDate>
		<dc:creator>Alexandre Santos</dc:creator>
				<category><![CDATA[Desenvolvimento Web]]></category>
		<category><![CDATA[JQuery]]></category>
		<category><![CDATA[Ajax]]></category>
		<category><![CDATA[C#]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[JSON]]></category>
		<category><![CDATA[PHP]]></category>

		<guid isPermaLink="false">http://diariodecodigos.info/?p=731</guid>
		<description><![CDATA[O que é JSON? JSON ou JavaScript Object Notation é um formato de texto para serialização de estrutura de dados. Ela é derivada de objetos literais do Javascript, como definido  no ECMAScript Programming Language Standard, Third Edition [ECMA]. JSON pode representar quatro tipos primitivos (strings, números, valores booleans e valores nulos) e dois tipos estruturados]]></description>
			<content:encoded><![CDATA[<h2><span style="color: #0000ff;"><img class="alignleft size-full wp-image-736" style="margin-left: 5px; margin-right: 5px;" title="json160" src="http://diariodecodigos.info/wp-content/uploads/2009/11/json160.gif" alt="json160" width="160" height="160" />O que é JSON?</span></h2>
<p>JSON ou JavaScript Object Notation é um formato de texto para serialização de estrutura de dados. Ela é derivada de objetos literais do Javascript, como definido  no ECMAScript Programming  Language Standard, Third Edition [ECMA].</p>
<p>JSON pode representar quatro tipos primitivos (strings, números, valores booleans e valores nulos) e dois tipos estruturados (objetos e arrays).</p>
<p>- Bem isso é o que diz a especificação &#8220;<a href="http://www.ietf.org/rfc/rfc4627.txt?number=4627" target="_blank">RCF 4627 application/json</a>&#8221;</p>
<p><span id="more-731"></span>Um exemplo de JSON é:</p>
<pre class="brush: jscript;">
{&quot;id_categoria&quot;:&quot;2&quot;,&quot;tipo&quot;:&quot;PRODUTOS&quot;,&quot;titulo&quot;:&quot;COLECOES&quot;,&quot;descricao&quot;:&quot;MACIO TESTE&quot;}
</pre>
<p>Se você ainda não está familiarizado com a estrutura do JSON recomendo fortemente a dar uma passada no <a title="JSON.ORG" href="http://json.org/" target="_blank">site oficial</a></p>
<p>Bem.. vamos esclarecer algumas coisas.</p>
<ul>
<li><strong>Quando utilizar JSON?</strong><br />
Digamos que você tenha um código<strong> Ajax</strong> que faz uma requisição com parâmetros via <strong>POST</strong> ou<strong> GET</strong> para uma <strong>página externa</strong>, e essa <strong>página externa</strong> retorna dados dos quais você tem que<strong> tratar</strong>. Esse é um bom lugar para os <strong>dados serem retornados com JSON</strong></li>
<li>O <strong>cabeçalho</strong> da resposta da página externa precisa retonar o <strong>MIME</strong> do tipo &#8220;<strong><em>Content-type: application/json</em></strong>&#8221;  (não é obrigatório mas é bom seguir a regulamentação)</li>
<li>O <strong>JSON</strong> é suportado por diversas linguagens, como <strong>PHP</strong>, <strong>C#</strong>, <strong>C</strong>, <strong>Lua,</strong> <strong>JavaScript</strong> é claro e diversas outras.</li>
<li><strong>JSON</strong> utiliza<strong> UTF-8</strong> (somente e pronto. Nada de <strong><em>iso-8859</em></strong> e etc. assim como no ajax)</li>
</ul>
<h2><span style="color: #0000ff;">Qual o objetivo desse post?</span></h2>
<p>O meu objetivo aqui é mostrar como você pode recuperar dados JSON de uma fonte externa e usa-los no seu script com JQuery.</p>
<p>Normalmente, você tem uma linguagem dinâmica que busca dados no banco de dados ou seja lá o que for e retorna os dados em <strong>JSON.</strong></p>
<p>Você com seu lindo script Ajax quer retornar esses dados e mostrar para o usuário sem precisar recarregar a página.</p>
<p>Para isso vamos supor que uma página PHP retorne o seguinte JSON.</p>
<pre class="brush: jscript;">
{&quot;id_categoria&quot;:&quot;2&quot;,&quot;tipo&quot;:&quot;PRODUTOS&quot;,&quot;titulo&quot;:&quot;COLECOES&quot;,&quot;descricao&quot;:&quot;MACIO TESTE&quot;}
</pre>
<p>Aqui temos, um objeto <strong>JSON</strong> com <strong>4 membros:</strong></p>
<ul>
<li>Membro<strong> &#8220;id_categoria&#8221; </strong>com o valor<strong> &#8220;2&#8243;</strong></li>
<li>Membro<strong> &#8220;tipo&#8221; </strong>com o valor<strong> &#8220;PRODUTOS&#8221;</strong></li>
<li>Membro<strong> &#8220;titulo&#8221; </strong>com o valor<strong> &#8220;COLECOES&#8221;</strong></li>
<li>Membro<strong> &#8220;descricao&#8221; </strong>com valor<strong> &#8220;MACIO TESTE&#8221;</strong></li>
</ul>
<p>Não vou retratar aqui como o <em>PHP</em> ou o <em>C#</em> retorna dados <strong><em>JSON</em></strong>, mas dê uma olhada em &#8220;<strong>LINKS</strong>&#8221; no final da página, para mais informações.</p>
<p>Agora vamos usar o método <strong><em>$.getJSON()</em></strong> do JQuery para manipular os dados, a sintax é:</p>
<pre class="brush: jscript;">
jQuery.getJSON( url, [data], [callback] )
</pre>
<ul>
<li><strong>URL</strong> -&gt; A url que vai ser requisitada (obrigatório)</li>
<li><strong>[data]</strong> -&gt; dados a serem enviados via POST (opcional)</li>
<li><strong>[callback]</strong> -&gt; Função que vai ser executada quando os dados forem carregados com sucesso (opcional)</li>
</ul>
<p>Supondo que temos 3 <strong>INPUT</strong> do tipo <strong>TEXT</strong> e queremos colocar esses dados dentro deles, as IDs desses INPUT são respectivamente:</p>
<ol>
<li><strong><em>id_categoriaUdt</em></strong></li>
<li><strong><em>tipoUdt</em></strong></li>
<li><strong><em>tituloUdt</em></strong></li>
<li><strong><em>descricaoUdt</em></strong></li>
</ol>
<p>A página a ser requisitada se chama<strong><em> categoria.php</em></strong>:</p>
<pre class="brush: jscript;">
$.getJSON(&quot;../actions/admin/categoria.php&quot;, function(json){
            $('#tipoUdt').val(json.tipo);
            $('#tituloUdt').val(json.titulo);
            $('#descricaoUdt').val(json.descricao);
            } // fim do callback
); // fim do .getJSON()
</pre>
<p>Simples assim.</p>
<p>pronto, você pode manipular o resultado de retorno, nesse caso &#8220;<strong>json</strong>&#8221; como um objeto <strong>javascript</strong>.</p>
<p><strong><em>val()</em> <span style="font-weight: normal;">é também um método </span>JQuery<span style="font-weight: normal;">, utilizado nesse caso para atribuir um valor ao </span>INPUT<span style="font-weight: normal;"> do nosso </span>FORM HTML</strong></p>
<p>Este foi um exemplo muito simples, apenas uma introdução a como manipular objetos JSON com JavaScript (JQuery).</p>
<p><strong>Boa Sorte!</strong></p>
<h2><span style="color: #0000ff;">- Links</span></h2>
<ul>
<li><span>Página Oficial do</span><strong> JSON</strong><span> -&gt;</span><a href="http://json.org/" target="_blank"> json.org</a></li>
<li>Documentação do <strong>$.getJSON()</strong> -&gt; <a href="http://docs.jquery.com/Ajax/jQuery.getJSON" target="_blank">docs.jquery.com</a></li>
<li>Usando <strong>JSONRequest</strong> -&gt;<a href="http://json.org/JSONRequest.html" target="_blank"> json.org</a></li>
<li>Função <strong><em>eval()</em></strong> do<strong> JavaScript </strong>-&gt; <a href="http://www.w3schools.com/jsref/jsref_eval.asp" target="_blank">w3schools.com</a></li>
<li>Usando <strong>JSON com PHP</strong> -&gt; <a href="http://www.php.net/manual/en/book.json.php" target="_blank">php.net</a></li>
<li>Usando <strong>JSON com C#</strong> -&gt; <a href="http://msdn.microsoft.com/pt-br/library/system.runtime.serialization.json.jsonreaderwriterfactory.aspx">msdn.microsoft.com</a><br />
Ou procure no<strong><em> Object Browser </em></strong>do <strong><em>Visual Studio </em></strong></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://diariodecodigos.info/2009/11/json-jquery/feed/</wfw:commentRss>
		<slash:comments>8</slash:comments>
		</item>
		<item>
		<title>Encoding &#8211; Ajax + MySQL</title>
		<link>http://diariodecodigos.info/2009/08/encoding-ajax-mysql/</link>
		<comments>http://diariodecodigos.info/2009/08/encoding-ajax-mysql/#comments</comments>
		<pubDate>Fri, 07 Aug 2009 23:00:04 +0000</pubDate>
		<dc:creator>Alexandre Santos</dc:creator>
				<category><![CDATA[Desenvolvimento Web]]></category>
		<category><![CDATA[Ajax]]></category>
		<category><![CDATA[Encoding]]></category>
		<category><![CDATA[ISO-8859-1]]></category>
		<category><![CDATA[MySql]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[utf-8]]></category>

		<guid isPermaLink="false">http://diariodecodigos.info/?p=313</guid>
		<description><![CDATA[Essa semana tive um problema com um sistema para web feito com PHP + Ajax (Jquery) + MySQL. As páginas estavam com a codificação européia (iso-8859-1) e o banco de dados MySQL também, o maior problema que que o ajax só trabalha com o utf-8! Isso significa que se você passar qualquer dado de padrão]]></description>
			<content:encoded><![CDATA[<p><img class="aligncenter size-full wp-image-341" title="ajax php mysql encoding" src="http://diariodecodigos.info/wp-content/uploads/2009/08/ajax+mysql+html1.png" alt="ajax php mysql encoding" width="610" height="80" /></p>
<p style="text-align: center;">Essa semana tive um problema com um sistema para web feito com PHP + Ajax (Jquery) + MySQL.</p>
<p>As páginas estavam com a codificação européia (<em>iso-8859-1</em>) e o banco de dados MySQL também, o maior problema que que o <em>ajax</em> só trabalha com o <em>utf-8</em>!</p>
<p><span id="more-313"></span>Isso significa que se você passar qualquer <em>dado</em> de padrão europeu pelo ajax (coisa que é inevitável) quando for exibido na página (<em>html</em>) ele nos fará o favor de aparecer  com &#8220;?&#8221; e caracteres estranhos no lugar da acentuação de língua portuguesa.</p>
<p>Para resolver esse problema eu fiz o seguinte:</p>
<ol>
<li>Transformei todas as páginas <em>html</em> de <em>iso-8859-1</em> para <em>utf-8<br />
</em>
<pre class="brush: xml;">&lt;meta http-equiv=&quot;Content-Type&quot; content=&quot;text/html; charset=utf-8&quot; /&gt;</pre>
</li>
<li>Configurei a sessão do banco de dados para<em> utilizar o UTF-8, com uma função dentro do PHP:<br />
</em></p>
<pre class="brush: php;">mysql_set_charset('utf8',$link);</pre>
</li>
</ol>
<p>Agora mesmo com todas as suas <em>tabelas</em> do MySQL configuradas para utilizar o padrão europeu (<em>latin1</em>,  <em>latin1_swedish_ci</em>), o MySQL tratará de forma transparente convertendo os <em>Charset</em> para você sem problemas na hora de recuperar e inserir dados.</p>
<p>Com isso eu já tinha matado metade dos meus problemas, mas mesmo assim alguns valores que eram retornados pelo banco de dados e eram passados pelo Ajax continuaram vindo com alguns caracteres estranhos, para isso existe uma função no php que resolveu o meu caso:</p>
<pre class="brush: php;">
string utf8_encode  ( string $data  )

// Exemplo de uso:

echo utf8_encode($valorVariavelTeimosa);
</pre>
<p>Bem, isso deixou meu App-Web 100% português, sem gambiarras e POG&#8217;s espalhados pelo código.</p>
<p>Boa Sorte!</p>
<p><strong>Links:</strong><br />
<a href="http://en.wikipedia.org/wiki/Character_encoding" target="_blank">http://en.wikipedia.org/wiki/Character_encoding</a><br />
<a href="http://www.php.net/manual/pt_BR/function.utf8-encode.php" target="_blank"> http://www.php.net/manual/pt_BR/function.utf8-encode.php</a><br />
<a href="http://en.wikipedia.org/wiki/Encoding" target="_blank"> http://en.wikipedia.org/wiki/Encoding</a></p>
]]></content:encoded>
			<wfw:commentRss>http://diariodecodigos.info/2009/08/encoding-ajax-mysql/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
	</channel>
</rss>

