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

Problemas com combobox ajax/asp


ckj

Pergunta

Olá pessoal sou novo no forum e não entendo muito de programação (iniciante). Meu problema é o sgte: estou tentando fazer

uma página de inserção de anúncios de classificados de veículos onde preciso de utilizar 2 combobox distintos um para

ser utilizado para inserir o Estado e Cidade e um outro pra inserir Marca e Modelo no mesmo Form. Tentei utilizar o script

da Andreia_sp conforme abaixo, não consegui fazer funcionar os 2 no mesmo form, somente funciona um. Alguém podeira

me ajudar? Obrigado.

/*'Exemplo do uso do Ajax
'Autor: Andreia_Sp - http://scriptbrasil.com.br/forum/index.php?showuser=7818
'2007 versão 1.0
*/

var xmlHttp

/* Essa funo manda a ID selecionada do combo de estados para a pgina que ir filtrar as cidades */
function MandaID(str)
{
xmlHttp=GetXmlHttpObject()
    if (xmlHttp==null)
    {
        alert ("Este browser no suporta HTTP Request")
        return
    }

var url="seleciona_cidade.asp" // o arquivo que ir executar a SQL das cidades
url=url+"?id_estado="+str // recebe o ID do estado para filtrar as cidade
url=url+"&sidjs="+Math.random()
xmlHttp.onreadystatechange=stateChanged
xmlHttp.open("GET",url,true)
xmlHttp.send(null)
}

/* Essa funo ir exibir o resultado na DIV */
function stateChanged()
{ 
    if (xmlHttp.readyState==4 || xmlHttp.readyState=="complete")
    { 
        document.getElementById("exibe_cidade").innerHTML=xmlHttp.responseText
    }
}

/* Instancia */
function GetXmlHttpObject()
{
var objXMLHttp=null

    if (window.XMLHttpRequest)
    {
        objXMLHttp=new XMLHttpRequest()
    }
    else if (window.ActiveXObject)
    {
        objXMLHttp=new ActiveXObject("Microsoft.XMLHTTP")
    }
return objXMLHttp
}

function ExibeIds()
{
var Estado = document.getElementById('estados');
var Cidade = document.getElementById('cidades');

if (Estado.value != '' && Cidade.value != '')
alert('ID do estado : ' + Estado.value + ' (' + Estado.options[Estado.options.selectedIndex].text + ')' + '\n\n' + 'ID da cidade : ' + Cidade.value + ' (' + Cidade.options[Cidade.options.selectedIndex].text + ')');
}

Link para o comentário
Compartilhar em outros sites

11 respostass a esta questão

Posts Recomendados

  • 0
Guest --ck_2007 --

Olá. Não aparece nenhum tipo de erro, somente não sei como fazer para funcionar 2 combobox em um mesmo Form

tenho quatro Select (Estado e Cidade) e (Marca e Modelo), o do Estado e Cidade fiz conforme seu exemplo e funcionou

corretamente. Agora, como faço para que funcione o combobox de Marca e Modelo na mesma página? Não estou conseguindo. Aguardo. Obrigado.

Link para o comentário
Compartilhar em outros sites

  • 0

Bom, fiz uma adaptação aqui meio que correndo mas pelo que eu testei.. funcinou.

O que acontece é que no exemplo que eu coloquei está amarrado pra apenas 2 combos. Tente assim:

function MandaID(id, url, container)
{
xmlHttp=GetXmlHttpObject()

if (xmlHttp==null)
{
    alert ("Este browser não suporta HTTP Request")
    return
}

var url=url
url=url+"?id="+id
url=url+"&sid="+Math.random()
xmlHttp.onreadystatechange=function()
{
    if (xmlHttp.readyState==4 || xmlHttp.readyState=="complete")
    { 
        document.getElementById(container).innerHTML=xmlHttp.responseText
    }
}
xmlHttp.open("GET",url,true)
xmlHttp.send(null)
}
Veja que eu exclui a funcao stateChanged, assim fica mais pratico ok. Bom, a chamada da função ficaria:
<select name="nome_select_estado" id="nome_select_estado" onchange="MandaID(this.value, 'pagina_retorno_cidades.asp', 'nome_da_div_de_retorno')">
e o outro combo:
<select name="nome_select_marca" id="nome_select_marca" onchange="MandaID(this.value, 'pagina_retorno_marcas.asp', 'nome_da_div_de_retorno')">

Link para o comentário
Compartilhar em outros sites

  • 0

OK. Andreia, agora funcionou corretamente. Será que você poderia me ajudar agora como faço para

fazer 3 combobox, deste jeito: selecionaria Estado, apareceria as Cidades, escolhendo a cidade apareceria

os nomes dos clientes da cidade escolhida? Obrigado pela sua ajuda. Vlw.

Link para o comentário
Compartilhar em outros sites

  • 0

Certo. Vou tentar fazer qualquer problema volto a postar, tá. Mas, para finalizar será que você poderia me

ensinar como fazer para que apareça a mensagem, Carregando., Carregando.., Carregando... no combo Cidade enquanto carrega as cidades? Obrigado. Até mais.

Link para o comentário
Compartilhar em outros sites

  • 0

Pra você colocar uma mensagem ou imagem ou qualquer forma de aviso ao usuario de que deve aguardar o carregamento, você implementa com um IF nesta parte:

if (xmlHttp.readyState==1)
{
//coloque aqui a mensagem por exemplo:
document.getElementById(container).innerHTML = "carregando...";
}
if (xmlHttp.readyState==4 || xmlHttp.readyState=="complete")
{
document.getElementById(container).innerHTML=xmlHttp.responseText
}

Link para o comentário
Compartilhar em outros sites

  • 0

Olá Andreia. Os 3 combobox funcionaram perfeito, só que a palavra "Caregando..." não consegui fazer

a formatação de sua fonte. Não teria algum jeito de colocar o IF na página que seleciona a cidade? Aguardo.

Link para o comentário
Compartilhar em outros sites

  • 0
O jeito é como eu postei mesmo, apareceu algum erro?

Não deu erro, eu só queria trocar a fonte, pois a fonte que aparece é fonte padrão, e a que eu uso é a tahoma ok?

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