Combo: País + Estado + Cidade

Isso é algo bem repetitivo.

Alguém conhece uma solução pronta pra isso.

Um componente, tag ou algo parecido?

Basicamente estou falando daquele combo que vc seleciona o país e daí entra os estados e as cidades daquele país…

Coisa básica (mas não trivial) de todo cadastro web…

Talvez isto te ajude…

http://www.oorsprong.org/websamples.countryinfo/CountryInfoService.wso

Por estados é q acho q não tem, mas tem o XML com a lista de continentes, paises, lingua, moeda, capitais, etc…

É bem mais complexo do que isso, visto que pais estado e cidade estão relacionados…

Eu usaria a dupla JSON e Prototype para montar essas combos dinamicamente:

http://www.prototypejs.org/api

http://www.json.org/

Algo parecido com esse exemplo do VRaptor:

http://www.vraptor.org/pt/ajax.html

Caso não use o VRaptor monte seu proprio JSON para carregar essas listas, adicionando a lib no projeto.

Usar Ajax é uma opção.

IFRAME é outra.

A questão aqui não é como fazer e sim se já tem uma solução pronta para isso.

Como fazer eu sei, pois já fiz no passado. E posso garantir: Não é simples nem rápido.

Enquanto não aparece nenhum componente ou tag pra isso estou refazendo tudo aqui.

  • Alguns paízes não possuem estados, apenas cidades.

  • Vc tem que sincronizar os tres campos: pais, estado e cidade…

Essas são apenas algumas das complexidades…

Sérgio,

não sei se você já conhece, mas vai uma sugestão: http://ajaxtags.sourceforge.net/usage.html.

Agiliza bastante. Dê uma olhada na tag ajax:select

[Edited]
É lógico que vc vai ter que ter esses relacionamentos dos países com os estados e dos estados com as cidades já prontos no seu banco.
[/Edited]

Caso não seja bem isso que vc queria, desconsidere.

O relacionamento vai estar no banco.

Falo do relacionamento entre os vários select. Quando muda um muda outro, que muda outro. Esse interligamento…

Ter que refazer isso a todo novo projeto é muito ruim… Um caso clássico para um component ou tag…

[quote=saoj]
O relacionamento vai estar no banco.

Falo do relacionamento entre os vários select. Quando muda um muda outro, que muda outro. Esse interligamento…

Ter que refazer isso a todo novo projeto é muito ruim… Um caso clássico para um component ou tag…[/quote]

Sergio,

Acho que a melhor opção seria algo com o AjaxTags ou DWR. Você pode criar uma tag que funcione mais ou menos como as dyntags do Mentawai, criando um <script>blablabla</script> ali no meio do jsp.

O DWR tem recursos MUITO bons para trabalhar com listas + elementos <select>, dá pra fazer várias brincadeiras. No evento onchange do <select> de países você chama o DWR para buscar sua lista de estados. Se ela vier vazia, vc vai e busca direto a de cidades, como vc mesmo disse que acontece. No onchange do <select> de estados vc busca a lista de cidades.
Vc tbm pode esconder o select de estados caso a respectiva lista venha vazia. É fácil checar essas coisas em javascript.

Onde tem uma boa referencia de JavaScript para eu descobrir como eu populo dinamicamente um combo box? Procurei no google mas não tive sucesso…

[quote=saoj]
Onde tem uma boa referencia de JavaScript para eu descobrir como eu populo dinamicamente um combo box? Procurei no google mas não tive sucesso…[/quote]

http://getahead.org/dwr/examples/lists

Olha só isto:

http://www.google.com/Top/Regional/

Depois se ir em Countries olha no que dá:

http://www.google.com/Top/Regional/Countries/

E depois se for em Brasil:

http://www.google.com/Top/Regional/South_America/Brazil/

E depois se for em States:

http://www.google.com/Top/Regional/South_America/Brazil/States/

Se voltar aos Countries:

http://www.google.com/Top/Regional/Countries/

E ir em Honduras por exemplo:

http://www.google.com/Top/Regional/Central_America/Honduras/

Vai ter ai as Ilhas em:

http://www.google.com/Top/Regional/Central_America/Honduras/Islands/

Pena é não ser WebService… e não sei se esta bem completo, mas parece q sim, para montar uma DB pelo menos já é uma fonte de dados…

  1. \o/ Programmers —após inúmeras pesquisas em querer encontrar uma rotina que me retorna-se todos os paises, estados e cidades mundiais não obtive sucesso, e vejo que muitos estão atrás disso também, por isso que arregacei as mangas e fiz esse combo-box abaixo usando a API do site … http://ws.geonames.org, Obs : ainda estou testando, mais a base de dados acredito que não esteja 100 %
    Saiu isso : http://du.somee.com/combo.asp

Acho que seria mais útil se você mostrasse como fez para carregar esses combos no asp :frowning: posso estar errado mais é o que penso.