Olá pessoal, O que eu precisava agora, é que ao selecionar um valor em um Combo-Box, um outro combo-box seja preenchido de acordo com o que foi selecionado no ComboBox anterior. Por exemplo, selecionei no combobox1 um estado (São Paulo), e no combobox2 apareceria as cidades deste estado. Alguém sabe como eu poderia fazer isso?
Bom, ai voce vai ter que preencher dinamicamente via javascript, algo parecido com o que primeiro codigo que eu te passei no exemplo anterior, faz. Voce cria variavies com cidades para cada estado, separados por "," por exemplo, e entao quando o usuario escolher o valor no combo1, voce preenche o combo2 via javascript, com a variavel de acordo com o estado selecionado.
HUmm, certo, mas como eu faria para a função ser executada após a seleção do estado? Não entendo muito de javascript...
Da uma olhada no link abaixo, no evento de onchange: http://www.tutoriaisweb.com/forum/viewtopic.php?t=168 Dai no seu select no onchange voce vai chamar uma funcao javascript para montar o seu outro select.
Erickles, de uma olhada no Google sobre Ajax, facilita bastante a vida para essas situações. Aqui um exemplo simples, usando a API Ajax do StarWeb FrameWork. Tais exemplos usam dados da base sports. Nesse limk podes ver o programa rodando. http://starweb-software.no-ip.info:8000 ... exemplo030 Parte da tela Código: /* * * StarWeb FrameWork (starweb@starweb-software.com.br) * * Programa exemplo030.p * Faz uma chamada para exemplo030-resp.p * Necessita de um banco baseado no sports conectado. * Popula dinamicamente um combo-box * */ /* *** Include com a lógica CGI do StarWeb FrameWork *** */ {cgi/cgi-cgi.i} /* *** Gera o header html *** */ output-content-type("text/html"). /* *** Desenha a página html *** */ {&out} '<html>' SKIP '<head>' SKIP '<title>StarWeb FrameWork - Exemplo030</title>' SKIP '</head>' SKIP. {&out} '<script language="Javascript" src="/starweb/swfw/js/swfwAjax.js"> </script>' SKIP. {&out} '<body>' SKIP 'Exemplo030' SKIP '<hr>' SKIP. {&out} '<div align="center">' SKIP ' <form method="post" name="form" action="exemplo030">' SKIP ' <table border="0" cellpadding="1" cellspacing="1">' SKIP ' <tr>' SKIP ' <td align="center">Representante</td>' SKIP ' <td align="center">Clientes que atende</td>' SKIP ' </tr>' SKIP ' <tr>' SKIP ' <td>' SKIP ' <select name="representante" size="9" onChange="ajaxPopulaCampo(~'~',~'~',form.cliente,~'exemplo030-resp?codigo=~' + this.value,~'Pesquisando ...~',~'sim~',~'~',~'~',~'~')">' SKIP. FOR EACH SalesRep NO-LOCK: {&out} ' <option value="' SalesRep.Sales-Rep '">' SalesRep.Rep-Name '</option>' SKIP. END. {&out} ' </select>' SKIP ' </td>' SKIP ' <td>' SKIP ' <select name="cliente" id="cliente" size="9" style="width:200px">' SKIP ' </select>' SKIP ' </td>' SKIP ' </tr>' SKIP. {&out} ' </table>' SKIP ' </form>' SKIP '</div>' SKIP. /* *** Fecha a página html *** */ {&out} '</body>' SKIP '</html>' SKIP. Parte do servidor que dá a resposta Código: /* * * StarWeb FrameWork (starweb@starweb-software.com.br) * * Programa exemplo030-resp.p * * Gera uma resposta XML para exemplo030.p * */ DEFINE VARIABLE retorno AS CHARACTER. DEFINE VARIABLE codigo AS CHARACTER. /* *** Include com a API do StarWeb FrameWork *** */ { cgi/cgi-cgi.i &carregarSuportePara="XML"} /* *** Gera o header apropriado *** */ output-content-type(ajax-CabecalhoDeRetorno()). ASSIGN codigo = GET-VALUE("codigo"). ajax-AbrirComboBox(). IF CAN-FIND(FIRST Customer WHERE Customer.Sales-Rep = codigo) THEN FOR EACH Customer WHERE Customer.Sales-Rep = codigo NO-LOCK BREAK BY Customer.Name: IF FIRST(Customer.Name) THEN ajax-ItemDoComboBox(STRING(Customer.Cust-Num),Customer.Name,YES). ELSE ajax-ItemDoComboBox(STRING(Customer.Cust-Num),Customer.Name,NO). END. ELSE ajax-ItemDoComboBox("","Nenhum Disponivel",NO). ajax-FecharComboBox().