Ir para conteúdo

POWERED BY:

Arquivado

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

Gelson Design

select com Estados e Cidades

Recommended Posts

Pessoal eu achei um arquivo na net que esta funcionando quase perfeito!

 

 

Tem um arquivo chamado FUNCOES.JS - FUNCOES.PHP E O INDEX.PHP

 

no Index.php esta meu formulario que tem o select do ESTADO quando eu escolho o estado o outro select da CIDADE busca automaticamente as CIDADES daquele RESPECTIVO ESTADO.

 

Ate ai tudo bem.

 

SO que quando dou o POST para enviar ele enviar o nome do estado JUNTO com o ID que esta no banco de dados.

Dai tentei so tirar o idEstado do codigo abaixo, mas dai o select CIDADE nao aparece nenhuma cidade.

 

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

opcao.setAttribute('value', idEstado + ' - ' + nomeEstado);

 

ALGUEM CONSEGUE ME AJUDAR???

Compartilhar este post


Link para o post
Compartilhar em outros sites

Pra que você quiz tirar o idEstado?

Sem ver o código completo, fica dificil ajudar. Coloca on line e posta um link pra galera.

 

Veja que provavelmente, o select usa o idEstado para fazer a busca, então você precisa dele ai.

Oque pretende ao modificar o script?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Se eu retirar o idEstado os estados vao aparecer no select so que as Cidades não

 

preciso tirar o idEstado pq quando vou mandar via POST tipo para uma campo predefinido ou ate mesmo por formulario de email aparece assim

 

ex: 24 Santa Catarina

Compartilhar este post


Link para o post
Compartilhar em outros sites

Faz um tratamento na variável com o php, e tira. Do js você não pode tirar, sem adaptar muitas outras coisas.

Coloque o código. Só assim, fica dificil.

Compartilhar este post


Link para o post
Compartilhar em outros sites

tem os dois arquivos o funcoes.js e o funcoes.php

 

o funcoes.php é isso

 

<?php

 

if (file_exists('init.php'))

{

require_once 'init.php';

}

else

{

exit('Não foi possível encontrar o arquivo de inicialização');

}

 

 

$acao = isset($_GET['acao']) ? $_GET['acao'] : FALSE;

 

header('Content-Type: application/xml');

 

$xml = "<?xml version='1.0' encoding='iso-8859-1'?>\r\n";

 

 

switch ($acao)

{

case 'buscaEstados':

buscaEstados();

break;

case 'buscaCidades':

buscaCidades();

break;

}

 

 

function buscaEstados()

{

global $xml;

 

$xml .= '<estados>';

 

$MySQLi = new MySQLi(BD_SERVIDOR, BD_USUARIO, BD_SENHA, BD_NOME);

 

$sql = $MySQLi->query('Select * From estados Order By nome ASC');

 

while ($f = $sql->fetch_object())

{

$xml .= ' <estado>';

$xml .= ' <id>' . $f->id . '</id>';

$xml .= ' <sigla>' . $f->sigla . '</sigla>';

$xml .= ' <nome>' . $f->nome . '</nome>';

$xml .= ' </estado>';

}

 

$sql->close();

$MySQLi->close();

 

$xml .= '</estados>';

echo $xml;

}

 

 

 

function buscaCidades()

{

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

 

global $xml;

 

$xml .= '<cidades>';

 

$MySQLi = new MySQLi(BD_SERVIDOR, BD_USUARIO, BD_SENHA, BD_NOME);

 

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

 

while ($f = $sql->fetch_object())

{

$xml .= ' <cidade>';

$xml .= ' <id>' . $f->id . '</id>';

$xml .= ' <nome>' . $f->nome . '</nome>';

$xml .= ' </cidade>';

}

 

$sql->close();

$MySQLi->close();

 

$xml .= '</cidades>';

echo $xml;

}

 

 

?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Está fazendo tudo isso via AJAX, certo?

Esse arquivo php gera o xml, que vai passar as informações pra página novamente.

 

Enfim... coloca tudo de uma vez... e usa as tags

, pois fica melhor pra ver o código.

Tente entender oque a ferramenta faz, antes de somente utlizá-la, com isso adaptar e altera se torna algo bem mais simples.

Compartilhar este post


Link para o post
Compartilhar em outros sites

essa é a função do java

 

function buscaEstados()

{

var uf = document.getElementById('uf');

 

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

op.setAttribute('value', '');

op.appendChild(document.createTextNode("Carregando..."));

uf.appendChild(op);

 

var ajax = openAjax();

 

ajax.open('GET', 'funcoes.php?acao=buscaEstados', true);

 

ajax.onreadystatechange = function()

{

if (ajax.readyState == 4)

{

if (ajax.status == 200)

{

uf.innerHTML = '';

 

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

opcao.setAttribute('value', '');

opcao.appendChild(document.createTextNode('Selecione'));

uf.appendChild(opcao);

 

var xml = ajax.responseXML;

var estado = xml.getElementsByTagName('estado');

 

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

{

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

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

 

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

opcao.setAttribute('value', siglaEstado);

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

uf.appendChild(opcao);

 

}

 

}

}

}

ajax.send(null);

 

}

 

 

 

 

function buscaCidades(uf)

{

var cidades = document.getElementById('cidade');

cidades.innerHTML = '';

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

op.setAttribute('value', '');

op.appendChild(document.createTextNode("Carregando..."));

cidades.appendChild(op);

 

var url = 'funcoes.php?acao=buscaCidades&uf=' + uf;

var ajax = openAjax();

 

ajax.open('GET', url, true);

ajax.onreadystatechange = function()

{

if (ajax.readyState == 4)

{

if (ajax.status == 200)

{

cidades.innerHTML = '';

 

var xml = ajax.responseXML;

var cidade = xml.getElementsByTagName('cidade');

 

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);

}

}

}

}

ajax.send(null);

}

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.