Ir para conteúdo
Fórum Script Brasil
  • 0

Como Fazer...


Rudimar

Pergunta

Tenho duas caixas de Lista (select).

A segunda caixa (caixa cool.gif deverá listar os conteudos de acordo com o que foi selecionado na caixa A.

Por exemplo:

Na caixa A estão listados os estados da federação.

E na caixa B estão listados os municipios.

Então dependendo de qual estado foi selecionado na caixa A, deverá na caixa B exibir os municipios correspondentes.

Na realidade já fiz isto, mas queria aperfeiçoar.

Existe o evento OnClick na caixa A, que executa a própria pagina novamente, e recupera o valor selecionado na caixa A,conforme abaixo:

$Estado= $HTTP_POST_VARS["Caixa A"];

Então trabalhando com a variável $Estado, exibibo na caixa B somente os municipios do estado selecionado.

O que quero é o seguinte:

Tenho visto alguns programas por ai, que quando o usuário clica em algum objeto, não existe aquela trabalheira toda de carregar a pagina novamente.

O que quero é isto. Quando o usuário clicar na Caixa A, já seja exibido na caixa B os municipios sem ter que carregar a página novamente.

Link para o comentário
Compartilhar em outros sites

3 respostass a esta questão

Posts Recomendados

  • 0
Guest Carlos Seiji

ai esta um que desenvolvi.

as matrizes e variaveis foram criadas atravez de uma pagina asp que puxava alguns registros ex.ohmy.gifs estados e as cidade e montava o script

espero que lhe ajude

[]'s

      <form action="" method="post">
      UF: <select name="uf" onchange="combo2();">

    </select>
    Cidade: <select name="cidade">

    </select><BR><BR>
    <input type="submit" name="enviar" value="Procurar" style="border:1px solid #009999; background:#003366;color:#ffffff" ver="n">
    </form>

<script>
	function criamatriz()
        	{
          this.length = criamatriz.arguments.length
          for (var i = 0; i < this.length; i++)
           this[i+1] = criamatriz.arguments[i]
         }

	var uf = new criamatriz('BA','GO','MS','PR','RJ','RS','SC','SP');
	var BA = new criamatriz('Salvador');
	var GO = new criamatriz('Goiania');
	var MS = new criamatriz('Bonito');
	var PR = new criamatriz('Curitiba');
	var RJ = new criamatriz('Rio de Janeiro');
	var RS = new criamatriz('Novo Hamburgo');
	var SC = new criamatriz('Florianópolis','Joinville');
	var SP = new criamatriz('Águas de Lindóia','Águas de São Pedro','Atibaia','Bananal','Barretos','Bauru','Campinas','São Paulo');

	for (i=0;uf.length >=i;i++) {
	document.forms[0].uf.options[i] = new Option(uf[i],uf[i]);
	}
	function combo2(){
	document.forms[0].cidade.length = 0
	comb = document.forms[0].uf.selectedIndex;
	comb_var = document.forms[0].uf.options[comb].value;
  for (i=0;eval(comb_var).length >= i; i++) {
  	document.forms[0].cidade.options[i] = new Option(eval(comb_var)[i],eval(comb_var)[i]);
  }
	}
</script>

Link para o comentário
Compartilhar em outros sites

  • 0

Valeu... era justamente isso o que procurava.

No entanto, os dados a serem alimentados nas caixas são puxados do banco de dados.

No seu codigo consta o seguinte:

var uf = new criamatriz('BA','GO','MS','PR','RJ','RS','SC','SP');

Nos elementos da matriz, ao invés de digitar diretamente os nomes dos estados, deve-se buscar estes nomes no banco de dados...

Já esquentei a cuca aqui, mas não consegui...

Será que tem jeito??

Link para o comentário
Compartilhar em outros sites

  • 0
Guest Carlos Seiji

cara da pra fazer sim...eu fiz este em asp puxando de um bd MySql...ate te passaria o codigo, mas pelo que percebi você usa php não é???

vou tentar fazer algo so para você ter a logica com certeza tem erros e codigos que não consegui encontrar e fiz em texto..pois conheco mais asp , php so tenho uma certa ideia ok?espero que ajude

tabela estado
ID   autoNumerico
UF   VarChar(2)

abre conexao com o bd
consulta = Select UF from estado order by uf

<?php
do {
 $estados = $estados +','+ consulta(UF)   'adiciona o valor da variavel estados mais o valor do campo uf da consulta do bd assim o valor sendo RJ e apos passar pela segunda vez o valor sera RJ,SP

mover para o proximo registro

} while (não for fim da consulta); 'laco ate finalizar a pesquisa no banco de dados
?>
var uf = new criamatriz(<?php echo "$estados" ?>);

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,2k
    • Posts
      651,9k
×
×
  • Criar Novo...