GUJ Discussões   :   últimos tópicos   |   categorias   |   GUJ Respostas

Combo: País + Estado + Cidade


#1

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...


#2

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...


#3

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


#4

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.


#5

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...


#6

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.


#7

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...


#8

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.


#9

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...


#10

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


#11

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...


#12

8) \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


#13

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


#14