Preenchendo um SELECT dinamicamente com PHP + JQuery

Este é um problema que muitos inicinates em PHP enfrentam no “caminho das pedras“, então resolvi postar este tópico que esclarece esse problema. O exemplo mais classico que existe por ai é o de “Estados e Cidades” mas só pra sair da tradição vou resolver usando “Marcas e Carros” o que também não foge tanto assim da regra (droga).

Monte uma tabela de estados no seu DB com os seguintes campos:

id_estado, estado; e nomeie a tabela como “estados”

Agora monte a tabela das cidades com os seguintes campos:

id_cidade, id_estado,cidade; e a nomeie como “cidades”

<html>

<head></head>

<body>

<select name=”listTurmas” id=”listTurmas” onChange=”Dados(this.value);”>
<option value=”0″>Turmas …</option>
<?php
require_once(“../conecta.php”);
$sql = “SELECT * FROM turmas”;
$query=mysql_query($sql);
while($res = mysql_fetch_array($query))
{
echo “<option value='”.$res[‘id_turma’].”‘>”.$res[‘turma’].”</option><br>”;
}
?>
</select>

<select name="listCidades" class="btn-slide" id="listCidades">
<option value="0">Cidades ...</option>

<?php require_once("../conecta.php"); // função de  conexao ao banco

$sql = "SELECT * FROM estados"; $query=mysql_query($sql);

while($res = mysql_fetch_array($query))

{

echo '<option value='".$res['id_estado']."'>".$res['estado']."</option>';// o tecnica está nesta linha, observe que o php gera uma tag HTML com os dados de cada estado até que termine o while
}

?>

</select>
</body>
</html

Pronto, teste o código e veja oque acontece, …, aconteceu que o select “listEstados” está preenchido com um lista dos estados cadastrados no banco, agora vamos pra segunda etapa do nosso exemplo,  iremos preencher o select “listCidades” com as cidades que pertencem ao estado selecionado no primeiro select.

Faça um novo arquivo no NotPad++ e salve-o com o nome de “procura_cidades.php” e digite o código a seguir:

<?php

require_once(“conecta.php”); //conexao ao banco de dados

extract ($_POST);

$sql = “SELECT * FROM cidades WHERE id_estado=”.id_estado;

$query = mysql_query($sql);

while($res = mysql_fetch_array($query))

{

echo “<option value='”.$res[‘id_cidade’].”‘>”.$res[‘cidade’].”</option><br>”;

}

?>


Este é o código que retorna as cidades de acordo com o id_estado passado para o código SQL.

Salve o arquivo e vote na página html onde está o formulario com os selects.

No topo da pagina, nates mesmo da tag <html> digite esse cogido JQuery a seguir.

<script type=”text/javascript” src=”jquery.js”></script>

<script language=”javascript” type=”text/javascript”>

$(document).ready(

function()

{

$(“select[@id=listEstados]”).change( //ao selecionar um item no select a funcao é acionada

function()

{

$(‘#listCidades’).html(‘<option value=”sda”>Procurando :::::::</option>’);

$.post(‘procura_cidades.php’,{id_estado: $(this).val() }, //envia o código do estado via POST atraves da variavel “id_estado” para o arquivo “procura_cidades.php”

function(resposta)

{

$(‘#listCidades’).html(resposta); //retorna o conteudo gerado em “procura_cidades.php” para dentro do select listCidades.

});

});

});//fim ready

</script>

E pronto, creio eu que o esquema já deve estar funcionando, qualquer coisa comentem.

Deixe um comentário

Problemas com acentos no MySQl e PHP

Ai pessoas! Estou trabalhando em um projeto aqui na JUCETINS quanto me vi com um probleminha, os acentos das palavras que estão no banco de dados (MySql) estavam saindo bagunçadas no lugar das letras acentuadas, quase morri de alegria, pois seria o meu primeiro POST realmente produtivo no presente BLOG. Vamos a solução do problema:

Primeiro vamos supor que você queira imprimir a seguinte string com uma cento:

echo “Vinte e três”; //daí ta saindo a letra “ê” toda bagunçada, faça assim: echo utf8_decode(“Vinte e três”);

e no topo da pagina coloque o seguinte: header(“Content-Type: text/html; charset=ISO-8859-1”, true);

Isso irá tornar seus acentos lindos e maravilhosos.

Para resolver esse problemas com strings vindas do Banco de Dados, ao criar as tablelas e campos, configure a opção Collation como:

latin1_swedish_ci

Espero ter ajudado!!!

Deixe um comentário

Bem Vindo!

Olá pra você que stá lendo isso! Esse blog tem o objetivo de ajudar as pessoas que estão entrando no mundo da programação WEB usando PHP ou JQuery ou os dois juntos. Adianto que também sou um aprendiz e não sei de tudo, mas tudo o que sei procurarei compartilhar com você.

Meu objetivo não é dar um curso de PHP e sim postar topicos intereçantes sobre essa linguagem.

No próximo POST vou colocar uma introdução à linguagem so mesmo pro consideração a quem está lendo agora e não conhece a liguagem.

Deixe um comentário

JQuery

QUem nunca viu nem ouviu falar, deve estar se perguntando, O que é isso?, pois bem “isso” é fruto de uma ideia genial no mundo dos FrameWorks. O JQuery é um FremeWork feito em JavaScript para JavaScript, quem já conhece o JavaScrip sabe que é uma trabalheira danada desenvolver tarefas simples, com o JQuery essa trabalheira danada chegou ao seu fim, repleto de funções a biblioteca JQuery agiliza de uma forma impolgante o tempo e o trablho no desenvolvimento de JavaScrip.

Para começar a utiliza-la eu recomendo este tutorial de JQuery traduzido pelo Carlos Pires.

Comments (1)

Primeiros Passos em PHP

Acho que não é preciso que eu diga que PHP é uma das liguagens WEB mais usadas no mundo e nem que sua curva de aprendisado é bem fechada né!!! Sou meio suspeito pra sair elogiando assim, pois PHP é a linguam que trabalho atualmente.

Não quero aqui “bitolar” as pessoas em uma ideologia de desenvolvimento, use PHP quem precisar, existem diversas liguagem poderosas por ai, como o Ruby on Rails, Java, C#, etc.

Então vamos ao que se é proposto, o primeiro material que um desenvolvedor PHP precisa obter é o Manual do PHP , isso é claro depois de ter instalado em sua máquina o XAMP ou EasyPHP (para quem  tá por fora, esse dois programas são os pacotes de ferramentas necessárias para se desenvolver em PHP, Apache, PHP, MySql) ou de sua preferencia, NotePad ++ (editor de texto).

Tendo instalado e configurado tudo, podemos começar a por a mão na massa, quer dizer, no código.

Vou dar o exemplo do Classico HELLO WORD!!!

&amp;amp;lt;?php

echo "HELLO WORD!!!"; //imprime o conteúdo entre as aspas na tela do Navegador

?&amp;amp;gt;

Digite esse codigo no NotePad++ e salve-o na pasta htdocs dentro do Apache com o nome de hello.php, EX: C:\xampp\apache\htdocs, se estiver usando o EasyPHP, será: C:\EasyPHP\apache\www, depois vá em seu navegador e digite ” 127.0.0.1/hello.php”, se tudo estiver dado certo, você verá HELLO WORD!!! escrito na pagina.

Comments (1)