Preenchendo um combobox apartir de outro: PHP + AJAX + MySQL

Eis aqui uma das dúvidas que aparecem com extrema freqüência nas listas de discussão ou fóruns sobre programação PHP (web). Como alimentar dinâmicamente (preencher automaticamente) um combobox (objeto select do HTML) a partir da escolha feita em um outro combobox, usando a primeira seleção como opção de consulta SQL num banco de dados MySQL???

Este tipo de abordagem é muito útil quando se deseja desenvolver, por exemplo, uma aplicação online no estilo das montadoras de carro; que permitem, mediante uma escolha de um modelo de automóvel, que os comboboxs posteriores sejam alimentados automaticamente e respectivamente à opção (motor, opcionais, cor, etc…). Embora seja totalmente possível se desenvolver um programa nestes moldes usando o casamento entre PHP + JavaScript, como neste exemplo desenvolvido pelo Carlos Master Jedi, construir uma aplicação assim com o uso do AJAX fica sensivelmente mais simples e eficiente.

De acordo com Raphael Paiva, “…antes de explicar o que é AJAX, deve-se explicar o que ele não é; AJAX não é um framework, uma API nem uma tecnologia em si, é uma funcionalidade implementada por um conjunto de objetos de JavaScript, sendo o mais importante chamado XMLHttpRequest. Este objeto, que trata uma requisição ou resposta de servidor com um documento XML DOM, contém uma série de métodos que possibilita que o browser possa realizar requisições e receber respostas do servidor sem que este tenha que atualizar(refresh) a tela”

Aproveite para dar uma boa olhada nesta apostila sobre AJAX escrita pelo próprio Raphael. Trata-se de um documento bastante direto, escrito numa linguagem muito simples e de nível iniciante/introdutório. Vale a leitura para conhecer mais a respeito! 😉

Neste sentido, resolvi fazer uma parceria inédita com o amigo Ângelo Pietro :), um dos melhores desenvolvedores web for PHP que conheço na região. Como resultado desta parceria (basicamente adaptei o exemplo repassado pelo Ângelo, aproveitando todo o expertise do código) nasceu esta pequena aplicação que disponibilizo aqui no JACK.eti.br. Trata-se de um exemplo simples, pequeno, objetivo mas muito intuitivo de aplicação for web nos moldes abordados neste post, usando PHP + AJAX + MySQL. O exemplo contém um script SQL que cria a base exemplo com as suas respectivas tabelas de dados já povoadas (com registros). Para testar o exemplo, basta descompactar os arquivos no diretório raíz do seu servidor http e, usar o PHPMyAdmin, por exemplo, para importar o script SQL que acompanha os arquivos da aplicação executando-o em seguida.