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:
<%
'#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 "não"
Letra = "N"
End Select
texto = texto & Letra
next
TiraAcento = texto
end function
%>
<link href="css/filtrohoteis.css" rel="stylesheet" type="text/css" />
<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" />
<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>
Question
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:
Link to comment
Share on other sites
2 answers to this question
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.