<?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>Blog do Adriano Meira &#187; php</title>
	<atom:link href="http://www.adrianomeira.com/blog/category/php/feed" rel="self" type="application/rss+xml" />
	<link>http://www.adrianomeira.com/blog</link>
	<description>CSS, jQuery, PHP, Designer e mais algumas coisas...</description>
	<lastBuildDate>Thu, 29 Dec 2011 13:35:55 +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>Carregando dados no Select com jQuery e Ajax</title>
		<link>http://www.adrianomeira.com/blog/carregamento-de-combobox-via-ajax-com-jquery</link>
		<comments>http://www.adrianomeira.com/blog/carregamento-de-combobox-via-ajax-com-jquery#comments</comments>
		<pubDate>Thu, 19 Nov 2009 11:12:31 +0000</pubDate>
		<dc:creator>Adriano Meira</dc:creator>
				<category><![CDATA[jQuery]]></category>
		<category><![CDATA[php]]></category>

		<guid isPermaLink="false">http://adrianomeira.com/blog/?p=47</guid>
		<description><![CDATA[Olá pessoal como diria o bom e velho Exterminador  &#8220;i&#8217;ll be back!&#8221;, ao poucos vou terminando de ajustas as coisas da casa e postar coisas novas, então vamos lá. Sabe quando você precisa de carregar algum(s) dados em um campo de selecet do seu documento e acha aqueles códigos enormes de ajax? Pois seus problemas [...]]]></description>
			<content:encoded><![CDATA[<p>Olá pessoal como diria o bom e velho Exterminador  &#8220;i&#8217;ll be back!&#8221;, ao poucos vou terminando de ajustas as coisas da casa e postar coisas novas, então vamos lá. Sabe quando você precisa de carregar algum(s) dados em um campo de selecet do seu documento e acha aqueles códigos enormes de ajax?</p>
<p>Pois seus problemas acabaram! <span id="more-47"></span>Trago para vocês um carregamento simples com jQuery e PHP, esqueça aqueles códigos enormes e problemas de acentuação com algumas técnicas de jQuery e PHP seus problemas já eram.</p>
<p>Vamos logo ao que interessa, para nossa &#8220;receita&#8221; de hoje vamos precisar de:</p>
<p>Ingredientes:<br />
1-Biblioteca do <a title="download jQuery" href="http://code.google.com/p/jqueryjs/downloads/detail?name=jquery-1.3.2.min.js&amp;downloadBtn=" target="_blank">jQuery</a>.<br />
2-Arquivos tipo .php.<br />
2-Selects, um onde terá os dados por exemplo do estado e outro que será carregado as cidades.<br />
1-um banco de dados a gosto.</p>
<p>Modo de preparo<br />
Abra um novo documento de PHP e dê o nome que quiser, nele inclua a biblioteca jQuery com a seguinte tag:</p>
<pre>&lt;script type="text/javascript" src="jquery-1.3.2.min.js"&gt;&lt;/script&gt;</pre>
<p>Lembre-se de deixar tudo na mesma panela, digo pasta, em seguida vamos ao select, crie dois selects onde um será o que contem os dados e o outro o que receberá logo teremos:</p>
<pre>&lt;select name="passaValor" id="passaValor" onchange="getValor(this.value, 0)"&gt;
   &lt;option value="0"&gt;Selecione algo&lt;/option&gt;
   &lt;option value="1"&gt;Primeiro Valor&lt;/option&gt;
   &lt;option value="2"&gt;Segundo Valor&lt;/option&gt;
  &lt;option value="3"&gt;Terceiro Valor&lt;/option&gt;
&lt;/select&gt;</pre>
<p>E outro que recebrá os dados passados pela função do de cima:</p>
<pre>&lt;select name="recebeValor" id="recebeValor" &gt;
    &lt;option value="0"&gt;Selecione algo acima primeiro&lt;/option&gt;
&lt;/select&gt;</pre>
<p>Lembre-se que estes selects estão abaixo ta tag &lt;body&gt; do seu documento,a gora acrescente cuidadosamente o seguinte código, não misture muito para não perder o gosto.</p>
<pre>&lt;script type="text/javascript"&gt;
   function getValor(valor){
     $("#recebeValor").html("&lt;option value='0'&gt;Carregando...&lt;/option&gt;");
     setTimeout(function(){
          $("#recebeValor").load("ajaxValor.php",{id:valor})
   }, 2000)
};
&lt;/script&gt;</pre>
<p>Explicando o código:</p>
<p>Criamos a função chamada de &#8220;getValor&#8221; que recebe alguma coisa &#8220;valor&#8221; daí mudamos o html do que bvei receber os dados para carregando, em seguida usamos o setTimeout do javascript para dar um &#8220;dele&#8221; um tempinho de 2 segundos para que fique tudo pronto e carregado depois, em seguida usamos a função load do jQuery que substitui o velho Ajax gigantesco, por padrão ele recebe:</p>
<pre>$("#ondeVaiCarregar").load.("pagina_carregada.php #seletor", {parametros:valor})</pre>
<p>Isso significaria:</p>
<pre>pagina_carregada.php?parametros=valor</pre>
<p>E será exibido tudo dentro do seu seletor e apenas o que foi determinado no #seletor, magia? Macumba? Não é jQuery.</p>
<p>Continuando, vamos para a página onde irá buscar do banco o valor que passamos, nesta página eu pego o valor passado por POST e faço uma busca no banc de dados, montando os campos do select um em baixo do outro veja:</p>
<pre>//Conecta ao Banco
$conexao = mysql_connect("localhost", "usuario", "senha")
or die ('Não foi possivel conectar ao banco porque; ' . mysql_error());
$db = mysql_select_db("banco") or die ("Banco de Dados Inexistente");
$id = $_POST["paramentros"];
$sql = "SELECT * FROM seuBanco WHERE idTabela = '$id'";
$totalBusca = mysql_query($sql);

while( $linha = mysql_fetch_assoc($totalBusca) ){
     echo "&lt;option value='".$linha["idTabela"]."'&gt;".htmlentities($linha["outroDado"])."&lt;/option&gt;\n";
}</pre>
<p>Para aqueles que conhecem de PHP nada de novo né? Bom uma rápida passadinha,nas quatro primeira instruções conexão ao banco de dados básicas, as próximas três isntruções eu recupero o valor passado via POST, monto a consulta e depois a executo, em seguida crio um &#8220;loop&#8221; onde vou imprimindo as opções do SELECT que vai recebe-las. Agora uma dica legal, para não ter problemas com acentuaçào utilize a função htmlentities(); do PHP, ela converte os caracters UTF e ISO, para maiores detalhes consulte o manual do PHP <a href="http://php.net/manual/en/function.htmlentities.php" target="_blank">aqui</a>.</p>
<p>Agora basta testar, e &#8220;voilà&#8221; aqui está seu combo trazendo as cosas certinhas, macumba? Magia ? Não é jQuery facilitando sua dúvida, caso queira<a href="http://www.adrianomeira.com/blog/downloads/jQuery-ajax.zip"> aqui está um teste sem consulta no banco</a>, baixe e brinque bastante, dúvidas estarei aqui.</p>
<p>Até mais pessoal!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.adrianomeira.com/blog/carregamento-de-combobox-via-ajax-com-jquery/feed</wfw:commentRss>
		<slash:comments>39</slash:comments>
		</item>
	</channel>
</rss>

