Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Beraldo

Combo com as Cidades e Estados do Brasil

Recommended Posts

Olá Beraldo!

Em primeiro lugar, meus parabéns pelo script, procurei por um bom tempinho e não tinha encontrado nada tão funcional... Meus parabéns mesmo!

 

E é o seguinte... Tenho uma pequena dúvida...

 

Fiz algumas modificações nos outros arquivos, mas aparentemente o problema está aqui:

 

$uf = isset($_GET['uf']) ? $_GET['uf'] : 'PR';

$sql = $MySQLi->query('Select uf, nome From cidades Where uf = ' . $uf . ' Order By nome ASC');

 

 

Criei um campo com o nome de uf...

E parece esse Select não aceita... Ou será que sou eu que fiz algo de errado?

Eu estou fazendo uns testes aqui, e parece que ele não está aceitando... Agora não sei se sou eu que não estou conseguindo ;~

 

Qualquer coisa, postarei os outros aquivos aqui :)/>

 

Abraço

Compartilhar este post


Link para o post
Compartilhar em outros sites

Desse jeito também não deu ;~

 

mas eu consegui fazer de outra maneira ;D

 

E só mais uma dúvida...

 

O que você pode fazer é alterar as funções JS bsuca_estado() e busca_cidade(), passando os valores do estado e da cidade como parâmetros. Depois, dentro do loop que percore o XML, crie um IF que verifica se o ID da cidade/estado corrente é o mesmo do passado por parâmetro. Se for, chame setAttribute() mais uma vez, definindo o valor de "selected" para "true"

Na prática, como ficaria? ;x

 

Obrigado.

Compartilhar este post


Link para o post
Compartilhar em outros sites

function montar($opcao, $vetor)

{

$tam = count($vetor);

 

for ($i = 0; $i < $tam; $i++)

{

if ($vetor['nome'] == $opcao) { mostrar o option com a opção checked em TRUE }

else { mostrar o option sem o checked }

}

}

Compartilhar este post


Link para o post
Compartilhar em outros sites

Parabéns Beraldo estava precisando de um script deste, testei vários e muitos davam erros, o seu foi perfeito encaixou como uma luva, agora só vou incremetar mais um campo de especialidades médicas e tudo resolvido.

 

Beraldo, Fábio, Hinom e Alaerte Grandes mestres que ajudam a todos na medida do possível!!!

 

Abraços a todos http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif/>

Compartilhar este post


Link para o post
Compartilhar em outros sites

olá, usei este script na versão mysql hehe, perfeito no IE, mas no mozilla nao carrega a lista de estados...

 

erro meu ? procurei respostas, nao entendo ainda ajax, como nao achei no php algo q resolvesse peço ajuda.. e se eu achar volto a postar.. obrigado

Compartilhar este post


Link para o post
Compartilhar em outros sites

Coloquei ele em um formulario de cadastro simples, porém quando ele insere os dados no db ele tá mandando o ID do Estado e ID da cidade, alguém tá dando o mesmo problema?

 

Ou alguém poderia me auxiliar?

 

Grato.

Compartilhar este post


Link para o post
Compartilhar em outros sites

É bem melhor salvar só o ID e fazer um relacionamento de tabelas para exibir o nome do estado.

Se um dia vocÊ resolver mostrar o nome completo do estado em vez da sigla, simplesmente fará alterações na tabela de estados, sem alterar todos os registros com aquele estado.

 

Mesma coisa se um dia precisar alterar/corrigir o nome de uma cidade.

 

http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif/>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Amigos, estou usando o script do colega Beraldo "combo dinamico" que por sinal muito bem feito,

tb estou usando um plugin do Jquery http://rikrikrik.com/jquery/magicpreview/ (visualização ao vivo, input, select, etc)

Infelizmente está trazendo apenas números de sua tabela no preview.

como faço p/ que mostre os nomes dos estados e cidades neste preview?

Se puderem dizer onde e como faço alteração no script do Beraldo,

sou leiga se puderem explicar devagar agradeço.

Obrigada

 

:rolleyes:/>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Amigos, estou usando o script do colega Beraldo "combo dinamico" que por sinal muito bem feito,

Obrigado. :)/>

 

Acho que sua dúvida se encaixa melhor no fórum de JavaScript. Você deve estar com dificuldades no JQuery, não no PHP.

 

Veja este trecho do arquivo funcoes.js:

var idEstado = estado[i].getElementsByTagName('id')[0].firstChild.nodeValue;

					var siglaEstado = estado[i].getElementsByTagName('sigla')[0].firstChild.nodeValue;

					var nomeEstado = estado[i].getElementsByTagName('nome')[0].firstChild.nodeValue;

					

					var opcao = document.createElement('option');

					opcao.setAttribute('value', idEstado);

					opcao.appendChild(document.createTextNode(siglaEstado + ' - ' + nomeEstado));

					uf.appendChild(opcao);
São criadas as variáveis idEstado e siglaEstado. Tanto o id quanto o nome estão no XML e estão chegando para o JavaScript.

 

Nunca usei o JQuery, então não posso dizer muita coisa.

 

Poset no fórum de JavaScript, explicando o problema e mostrando o código que está utilizando. O pessoal de lá provavelmente saberá ajudá-la. http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif/>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Beraldo, eu só consegui gravar no DB o nome da cidade fazendo isto:

while ($linha = mysql_fetch_array($query)) {

$valor[] = $linha['nome'];

}

Se não só grava o número correspondente à cidade,

no caso é o mesmo problema que esta acontecendo com este plugin preview ,

só aparece o número da cidade.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Beraldo, eu só consegui gravar no DB o nome da cidade fazendo isto:

Mas você não postou um código para salvar no banco. Postou um para fazer seleção. :unsure:/>

 

É preferível salvar somente o ID da cidade. Na hora de selecionar, faça um relacionamento de tabelas para buscar o nome da cidade e o estado. Fica mais eleve e também fica mais fácil se um dia precisar editar um nome de cidade por exemplo - parece loucura, mas pode acontecer... :lol:/>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Beraldo, eu e muitos aqui sabemos que seu código funciona super bem,

entretanto gostaria de saber qual a possibilidade de fazer uma pequena alteração ou

uma terceira edição ?

 

Quando envio "uf" e "cidade" para o banco de dados é gravado os números referente as localidades.

Esta alteração seria para enviar os nomes dos estados e cidades para o DB.

 

Como sou iniciante, peço sua ajuda.

desde já agradeço.

Obrigada

http://forum.imasters.com.br/public/style_emoticons/default/joia.gif/>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Salva o ID pois é o ID que está no value dos options.

Para alterar:

 

Basta trocar isto:

opcao.setAttribute('value', idEstado);

por isto:

opcao.setAttribute('value', nomeEstado);

Faça o mesmo com a função que busca as cidades.

 

Mas eu ainda acho melhor salvar só os IDs no banco.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Beraldo, alterei como falou, mas o segundo combo (cidades) NÂO abriu.

 

for (var i = 0; i < cidade.length; i++)

{

var idCidade = cidade.getElementsByTagName('id')[0].firstChild.nodeValue;

var nomeCidade = cidade.getElementsByTagName('nome')[0].firstChild.nodeValue;

 

var opcao = document.createElement('option');

opcao.setAttribute('value', nomeCidade);

opcao.appendChild(document.createTextNode(nomeCidade));

cidades.appendChild(opcao);

}

Compartilhar este post


Link para o post
Compartilhar em outros sites

Beraldo, fiz esta modificação, mas ainda não funciona o combo cidade

como resolver isto ?

 

$sql = $MySQLi->query('Select id, nome From cidades Where nome_uf = ' . $uf . ' Order By nome ASC');

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.