Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Boa tarde galera, meu nome é Luiz Paulo, primeiro post aqui no iMasters e chego aqui com uma dúvida bem filosófica... busquei algo mas não encontrei, talvés explicando fique mais fácil de vocês caros colegas e amigos desenvolvedores me ajudarem
No seguinte exemplo:
-
Temos um formulário de cadastro com Nome, Idade, Endereço (campos input texto) e Cidade e Bairro (selects), sendo que bairro popula via AJAX quando o usuário seleciona a Cidade (consulta pelo código e retorna o JSON q faz o append em Bairro)
Se tivermos que editar tal registro, qual a melhor maneira vocês sugerem para puxar já preenchido todos os campos, em especial a Cidade e o Bairro (que popular via AJAX), permitindo que ele possa alterar um deles.
Atualmente eu utilizo um script no final do código q puxa o Bairro no document.ready() com um setTimeout depois de 800ms de carregamento da página, de acordo com o valor já selecionado da Cidade (nesse caso ele já inclui direto o valor no HTML via echo do PHP, que faz um selected="selected" básico hehehe)
Fiquem a vontade para dar sugestões e soluções, Abraço!
Tem uma terceira approach que é fazer apenas uma unica requisição (e aproveitar do cacheamento).
Exemplo abaixo com Estados x Cidades.
Seria popular todos os estados e a cada escolha refazer o select das cidades, isso tudo do lado do client (js) evitando requisições futuras.
Ex de Estados/Cidades:
SP:
--Campinas
--São Paulo (Capital)
-- Guarulhos
... (etc)
RJ:
--Barra Mansa
--Cabo Frio
--São Gonçalo
... (etc)
TL;DR ----
Pro :
- Uso de Cache pode ser usado tranquilamente
- Evita futuras requisições
- Diminui sempre a quantidade/possibilidade em forma de arvore:
Contra:
- Carrega todas as cidades do Brasil
Veja um exemplo pratico (Em Js Vanilla / ou jQuery):
[https://github.com/gabrieldarezzo/desafiosInternos/tree/master/select](https://github.com/gabrieldarezzo/desafiosInternos/tree/master/select)
>
2 horas atrás, luizpaulobtu disse:
setTimeout depois de 800ms
Cuidado ai, 99% das vezes q eu vejo um setTimeout em código alheio é alguma gambiarra por falta de entendimento do conceito de Callbacks
https://pt.stackoverflow.com/questions/27177/o-que-é-callback
Sim @EdCesar , essa é uma abordagem legal, no caso do cara clicar no campo popular economizar requests
@gabrieldarezzo muito interessante o uso de cache, bem... confesso q o setTimeout é meio que uma "gambiarra" para esperar um pouco pois tinha vezes que parecia não processar de primeira o retorno do JSON, sei lá, deve ser trauma meu rs
A idéia é conhecermos diferentes abordagens pois tem horas que eu penso q deve ter um jeito "mais certo" ou "mais fácil" rss
@luizpaulobtu, joia! Não que você esteja fazendo errado, uma outra visão é: