Requisição de Servlet com <select>

Estou fazendo um site usando Servlets JSP e JQuery

O que estou tentando fazer é chamar um servlet para popular dois combos, um de Estado e um de Cidade.

Uma pagina chama o Servlet que faz uma busca no banco. que traz todos os estados. vejo quem é o primeiro da lista, e faço um select no banco para puxar as cidades do primeiro estado e populo os de estado e cidade.

A duvida é que eu queria que quando eu escolhesse outro estado. chamasse o Servlet, para eu poder popular as cidades daquele estado na

Alguém sabe como eu faço pra chamar o servlet através de uma escolha do “DropBox”?

$(document).ready($(function(){
    //Aqui eu recebo a mudanca de estado do select do estado e chamo a funcao que entrara em contato com o servlet
    // e recebera as cidade populando o select da cidade
    $("#uf").bind("change", listarCidadesPorUF);    
}));

[code]
function listarCidadesPorUF(){

var ts = $.ajax({
    type: "post",
    url: "Controller?cmd=GetCidadePorEstado&uf="+$(this).val(), //Aqui eu chamei o servlet
    success: function(result){ 
        

        //Conforme o resultado adquirido eu populo o obj                                                      
        $("#cidade option").remove();
        $("#cidade").append(
            "<option value=\"---\">- - - - - - - - - - - - - - - - - - - -</option>");
                        
        if(result.length == '2'){
            $("#cidade").append(
                "<option id=\"cadNovaCidade\" class=\"optionCadCidade\" value=\"newCity\">*** Cadastrar Nova Cidade ***</option>");
        } else {
            var obj = jQuery.parseJSON(result);
             var i;       
            for(i = 0; i < obj.length; i++){                                    
                $("#cidade").append("<option value=\""+obj[i].idCidade+"\">"+obj[i].nomeCidade+"</option>");
            }
            $("#cidade").append("<option id=\"cadNovaCidade\" class=\"optionCadCidade\" value=\"newCity\">*** Cadastrar Nova Cidade ***</option>");
        }
    }
});                  

}[/code]

Cara espero ter ajudado em algo.

Se tiver jstl pode fazer

&lt;jsp:useBean class="br.com.seupacote.suaClasseDAO" id="dao"/&gt; //estanciei a sua classe dao

&lt;select name="selecao"&gt; 
&lt;c:forEach var="opcoes"  items="${dao.opcoes}" &gt;
 // forEach que vai exibir todos os items do banco , a var vai ser tipo uma variavel que vai representar o for o items eu uso a estancia do dao e executo um metodo nele que no caso é o //getOpcoes , porem a EL da jstl lê todos os metodos SEM O get,porem o metodo tem que estar nomeado com o get
   &lt;option&gt; ${opcoes.opcao} &lt;/option&gt; //aqui vai popular as opcoes do select com o for,sendo que opcao no caso é o atributo da classe que vai pegar o valor da opção
&lt;/c:forEach&gt;
&lt;/select&gt;

e detalhe,você pode fazer a mesma coisa se você primeiro requisitar um servlet,buscar a lista nele,salvar essa lista no request ,dar um foward para a jsp
e na jsp fazer o foreach com jstl,como mostrei acima,a unica diferença é que você vai pegar com requestScope.tipo

&lt;select&gt;
&lt;c:forEach var="opcoes"  items="${requestScope.nomeQueVoceSalvauNoRequest}" &gt;  
 &lt;option&gt; ${opcoes.opcao} &lt;/option&gt;
 &lt;c:forEach&gt;
&lt;/select&gt;

show de bola Charles, mas não sei porque. nada que é script está funcionando na minha pagina.

só funcionam se eu dou um F5 na tela. ai tudo funciona. se não a tela fica um HTML normal. você sabe o que pode ser?

[quote=charles.eduardo] $(document).ready($(function(){ //Aqui eu recebo a mudanca de estado do select do estado e chamo a funcao que entrara em contato com o servlet // e recebera as cidade populando o select da cidade $("#uf").bind("change", listarCidadesPorUF); }));

[code]
function listarCidadesPorUF(){

var ts = $.ajax({
    type: "post",
    url: "Controller?cmd=GetCidadePorEstado&uf="+$(this).val(), //Aqui eu chamei o servlet
    success: function(result){ 
        

        //Conforme o resultado adquirido eu populo o obj                                                      
        $("#cidade option").remove();
        $("#cidade").append(
            "<option value=\"---\">- - - - - - - - - - - - - - - - - - - -</option>");
                        
        if(result.length == '2'){
            $("#cidade").append(
                "<option id=\"cadNovaCidade\" class=\"optionCadCidade\" value=\"newCity\">*** Cadastrar Nova Cidade ***</option>");
        } else {
            var obj = jQuery.parseJSON(result);
             var i;       
            for(i = 0; i < obj.length; i++){                                    
                $("#cidade").append("<option value=\""+obj[i].idCidade+"\">"+obj[i].nomeCidade+"</option>");
            }
            $("#cidade").append("<option id=\"cadNovaCidade\" class=\"optionCadCidade\" value=\"newCity\">*** Cadastrar Nova Cidade ***</option>");
        }
    }
});                  

}[/code]

Cara espero ter ajudado em algo.[/quote]

Resolvido. eu não sei porque mas a tela começou a funcionar quando eu coloquei o atributo “target=’_parent’” no link para a pagina, e tudo funcionou. valeu!!

Coldn esqueci de informar que o script que está sendo utilizando depende do framework Jquery ( http://jquery.com/download/ ). Desculpe-me a demora na pergunta.