Ajuda - Busca - Membros - Calendário
Versão Completa: Combobox com AJAX nào funciona no Mozilla ajuda
Fórum Script Brasil > Programação & Desenvolvimento > ASP
stallivieri
Senhores, boa tarde!

Estou quebrando a cabeça com uma combobox.
Ao selecionar Estados a combobox busca do banco SQL as cidades. No Internet explorer ela funciona perfeito me retornando o resultado da cidade escolhida quando clico no botão.
Meu problema é quando faço a consulta com o Firefox. Ela não pega o filtro da cidade e acaba listando todos os hoteis das cidades do Estado.

Não sei mais o que fazer. Alguém poderia me ajudar? Segue abaixo o código utilizado.

Código do Combobox:


CODE
<%
'#Função que tira todos os acentos das palavras
function TiraAcento(StrAcento)
for i = 1 to len(StrAcento)
Letra = mid(StrAcento, i, 1)
Select Case Letra
Case "á","Á","à","À","ã","Ã","â","Â","â","ä","Ä"
Letra = "A"
Case "é","É","ê","Ê","Ë","ë","È","è"
Letra = "E"
Case "í","Í","ï","Ï","Ì","ì"
Letra = "I"
Case "ó","Ó","ô","Ô","õ","Õ","ö","Ö","ò","Ò"
Letra = "O"
Case "ú","Ú","Ù","ù","ú","û","ü","Ü","Û"
Letra = "U"
Case "ç","Ç"
Letra = "C"
Case "ñ"
Letra = "N"
End Select
texto = texto & Letra
next
TiraAcento = texto
end function

%>
<link href="css/filtrohoteis.css" rel="stylesheet" type="text/css" />
&lt;script language="javascript">

function setPlano(objStatus) {
    document.all.item("divVarPlano").style.visibility = objStatus;
}

function SubmitState(iState) {
    document.hoteis.VARESTADO.selectedIndex = iState;
    if (frmCheck()) document.hoteis.submit();
}

function manda(){
var p = document.hoteis;
p.submit();
}

function MM_jumpMenu(targ,selObj,restore){ //v3.0
  eval(targ+".location='"+selObj.options[selObj.selectedIndex].value+"'");
  if (restore) selObj.selectedIndex=0;
}


// Função que verifica se os campos do formulário estão em branco.
function valida_campo()
    {
    var nomehotel = document.busca_nome.nomehotel.value
    if (nomehotel=="")
    {alert("O campo está vazio. É obrigatório o preenchimento do campo...");
    document.busca_nome.nomehotel.focus()
    return false
        }
    }
    
    function GetXMLHttp() {  
    if (navigator.appName == "Microsoft Internet Explorer") {  
        xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");  
    } else {  
        xmlHttp = new XMLHttpRequest();  
    }  
    return xmlHttp;  
}  
var mod = GetXMLHttp();  
  
function alimentarCombo(valor) {  
    mod.open("GET", "Carrega_ajax.asp?id="+valor+"", true);  
    mod.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");  
    mod.onreadystatechange = function() {  
        if (mod.readyState == 4) {  
            document.getElementById("resultado").innerHTML = mod.responseText;  
        }  
    };  
    mod.send(null);  
}  


    
    
function valida_campo2()
    {
    var varestado = document.busca_hoteis.varestado.value
if(form.busca_hoteis.selectedIndex > 0)
{
// an option has been selected } else { // no option selected
}}
</script>
<table width="214" border="0" cellpadding="0" cellspacing="6">
<form name="busca_nome" method="post" action="resultado_busca_nome_hotel.asp">
<tr>
<td><img src="imagens/titulos/titulo_nomehotel.png" width="97" height="10" alt="PAis" /></td>
</tr>
<tr>
  <td><input name="nomehotel" type="text" class="" id="Hotel" size="28"/>
  </td>
</tr>
<tr>
<td valign="0"><label><input name="Submit" type="image"  onClick="return valida_campo();" value="Ok" src="imagens/master/botao_buscar.png">
        </label>
</td>
</tr>
</form>
</table>
<br />
<table width="" border="0" cellpadding="0" cellspacing="0">
<form name="buca_hoteis" method="post" action="resultado_hoteis.asp">
<tr>
<td><img src="imagens/titulos/tit_hotel_pais.png" width="25" height="13" alt="PAis" />
</td>
<td> </td>
<td>
<select name="select" class="input" id="select" onchange="MM_jumpMenu('parent',this,0)">
                  <option value="" selected="selected">Brasil</option>
                  <option value="portugal.asp">Portugal</option>
                  <option value="rede_internacional.asp">Rede Internacional</option>
</select>
</td>
</tr>
<tr>
<td><img src="imagens/titulos/tit_hotel_estado.png" width="45" height="10" alt="estado" /></td>
<td> </td>
<td>
        <select name="varestado" class="input" id="varestado" onchange="alimentarCombo(this.value);">
                    <option value="AL">Alagoas</option>
<option value="AP">Amapá</option>
                    <option value="AM">Amazonas</option>
                    <option value="BA">Bahia</option>
<option value="CE">Ceará</option>
                    <option value="DF">Distrito Federal</option>
<option value="ES">Espírito Santo</option>
<option value="GO">Goiás</option>
<option value="MA">Maranhão</option>
                    <option value="MT">Mato Grosso</option>
                    <option value="MS">Mato Grosso do Sul</option>
                    <option value="MG">Minas Gerais</option>
<option value="PA">Pará</option>
<option value="PB">Paraíba</option>
<option value="PR">Paraná</option>
                    <option value="PE">Pernambuco</option>
<option value="PI">Piauí</option>
                    <option value="RJ">Rio de Janeiro</option>
                    <option value="RN">Rio Grande do Norte    </option>
                    <option value="RS">Rio Grande do Sul</option>
<option value="RO">Rondônia</option>
                    <option value="RR">Roraima</option>
                    <option value="SC">Santa Catarina</option>
<option value="SP">São Paulo</option>
                    <option value="SE">Sergipe</option>
                    <option value="TO">Tocantins</option>
                    <option value="00" selected>Todos</option>
</select>
</td>
</tr>
<tr>
<td><img src="imagens/titulos/tit_hotel_cidade.png" width="44" height="10" alt="Cidade" /></td>
<td> </td>
<td> <div id="resultado"></div>   </td>
</tr>
<tr>
<td><img src="imagens/titulos/tit_hotel_plano.png" width="38" height="10" alt="Plano" /></td>
<td> </td>
<td><select name="varplano" class="input" id="varplano">
                <option value="1">VIP / Master</option>
                <option value="2">Gold VIP / Gold Master</option>
    </select>
</td>
</tr>
<tr>
<td colspan="3" align="right">
<label>
<input name="busca_hoteis" type="image" onClick="return valida_campo2();" value="Ok" src="imagens/master/botao_buscar.png">
</label></td>
</tr>
</form>
</table>

Ajax:

<link href="css/filtrohoteis.css" rel="stylesheet" type="text/css" />
&lt;script type="text/javascript">

  var _gaq = _gaq || [];
  _gaq.push(['_setAccount', 'UA-2285354-1']);
  _gaq.push(['_trackPageview']);

  (function() {
    var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
    ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
    var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
  })();

</script>
<!-- #include file="includes/advbs.asp" -->
<!-- #include file="includes/fnctions.asp"-->
<%

'Abre a conexão com o banco de dados
Set ConexaoSql = Server.CreateObject("ADODB.Connection")
ConexaoSql.Open (ConStr)
If Err.Number <> 0 Then
    ConexaoSql.close
    ConexaoSql.Open (ConStr2)
End if
ConexaoSql.cursorLocation = 3


        
    'Cria o objeto que executará um comando no banco de dados
    Set Comando = Server.CreateObject("ADODB.Command")
    Comando.ActiveConnection = ConexaoSql
    Comando.CommandText = "sp_Hoteis_HP_Cidades_Divisoes"
    Comando.CommandType = adCmdStoredProc
        
    'Primeiro parâmetro a ser criado é o de retorno "Return"
    Comando.Parameters.Append Comando.CreateParameter("Return", adInteger, adParamReturnValue)
    
    'Define os parâmetros de entrada        
    Comando.Parameters.Append Comando.CreateParameter("@in_tp", adInteger, adParamInput, 4, 0)

    Comando.Parameters.Append Comando.CreateParameter("@in_estado", advarchar, adParamInput, 3, request.queryString("id"))

    Comando.Parameters.Append Comando.CreateParameter("@in_plano", advarchar, adParamInput, 2, 0)

    'Cria o objeto que conterá os resultados da stored procedure
    Set rstConsultaRede = Server.CreateObject("ADODB.Recordset")

    'Executa o comando no banco de dados atribuindo à um Recordset
    Set rstConsultaRede= Comando.Execute        
            

%>
<select name="varcidade" id="varcidade" class="input">    
    <%
        
    Do While Not rstConsultaRede.EOF        
    %>
            <option value="<%=rstConsultaRede("cid_hot")%>" ><%=rstConsultaRede("cid_hot")%></option>
            
    <%
        rstConsultaRede.MoveNext         
        Loop
    %>    
</select>
bareta
começe alterando seu javascript...

para pegar valor de inputs use document.getElementById('id').value...


voce pode ver o que ta dando errado também pelo console de erros do firefox.
stallivieri
QUOTE(bareta @ 23/11/2011 - 10:44) *
começe alterando seu javascript...

para pegar valor de inputs use document.getElementById('id').value...


voce pode ver o que ta dando errado também pelo console de erros do firefox.



Amigo, obrigado por sua atenção.

você poderia postar para mim como deveria ficar o código?

Abraços.
Esta é uma versão simplificada de nosso conteúdo principal. Para ver a versão completa com maiores informações, formatação e imagens, por favor clique aqui.
Invision Power Board © 2001-2013 Invision Power Services, Inc.