Neste exemplo estou usando uma biblioteca chamada JQUERY para economizar um pouco de código.
Uso a função $.getJSON para fazer uma requisição a uma página dinâmica, recuperar a resposta dela (que, obviamente, deve ser em JSON) e rodar uma função tratando a resposta em JSON (que neste exemplo, carrega um combo).
Entendeu? Entenda esse fluxo, que daí não fica difícil interpretar o que a função está fazendo.
<script src="../../js/jquery.js" type="text/javascript"></script>
<script type="text/javascript">
//executa no onload
$(document).ready(
//carrega combos do formulário
function() {
//valida se a biblioteca JQuery foi carregada
if (typeof jQuery == 'undefined') {
alert("Falha no carregamento da biblioteca de scripts do site\n" +
"Contate o administrador");
return;
}
$.getJSON(
"../json/RecuperaLista.php",
function(data){
var options = "";
//para cada item no json, concatena a string options
$.each(data, function(i,item){
options += "<option value=\"" + item.optionValue +
"\">" + item.optionDisplay + "</option>";
});
//carrega opções no combo do formulário
$("select#origem").html(options);
}
);
});
</script>
<body>
<!-- o combo que será carregado - inicialmente está vazio -->
<select name='origem' size='1' class='form_imput' id='origem'>
<option selected='selected'>Carregando opções...</option>
</select>
</body>
A página dinâmica que $.getJSON chama (RecuperaLista.php) faz o trabalho de consulta (neste caso é php e o banco de dados é mysql).
O trabalho deste php é fornecer uma resposta no formato JSON a uma requisição http.
<?php
include ("../conecta.php");
$query = "SELECT Cod_local, CONCAT(cidade_local, ' (', UF_LOCAL, ') ') AS cidade_local FROM locais WHERE Removido_local = FALSE ORDER BY cidade_local;";
$stmt = mysql_query($query, $link);
$saida = array();
$i = -1;
//aqui é montado um array em formato de mapa, com as opções chave -> valor.
while ($rs = mysql_fetch_array($stmt)) {
$i = $i + 1;
$saida[$i] = array("optionValue" => utf8_encode($rs['Cod_local']), "optionDisplay" => utf8_encode($rs['cidade_local']));
}
//tranforma o array em formato JSON.
echo json_encode($saida);
?>
Acho que este exemplo não irá ajudar muito, porquê você têm que saber antes qual tecnologia você vai usar (ASP, PHP, etc…). Depois que você souber disso, daí você pode procurar na internet por um exemplo mais específico.
Para você entender tudo o que é usado, estude separadamente o que é JSON, AJAX, (a tecnologia de página dinâmica) e, neste caso que exemplifiquei, JQUERY. JQUERY é opcional, você pode fazer em JAVASCRIPT puro.