Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Boa noite pessoal,
Estou com um problema.
Tenho um sistema, na página inicial o visitante seleciona a cidade e os bairros são carregados de acordo com a cidade escolhida, porém no firefox não está funcionando.
O problema é que no Firefox quando se seleciona uma cidade com caracteres especiais os bairros desta cidade não são carregados.
Será que alguém pode me ajudar?
Ajax que carrega os Bairros:
<script language="javascript">
function pesquisar_dados(cidade)
{
ajax.open("GET", "city.php?cidade=" + cidade, true);
ajax.onreadystatechange = handleHttpResponse;
ajax.send(null);
}
function handleHttpResponse()
{
campo_select = document.forms[0].bairro;
if (ajax.readyState == 4) {
campo_select.options.length = 0;
results = ajax.responseText.split(",");
for( i = 0; i < results.length; i++ )
{
string = results[i].split( "|" );
if ( string[0] != "" ){
campo_select.options[i] = new Option( string[0], string[0] );
} else {
campo_select.options[i] = new Option( "Todos os Bairros" , "" );
}
}
}
}
function getHTTPObject()
{
if(window.XMLHttpRequest)
{
return new XMLHttpRequest();
} else
if(window.ActiveXObject)
{
var prefixes = ["MSXML2", "Microsoft", "MSXML", "MSXML3"];
for(var i = 0; i < prefixes.length; i++)
{
try
{
return new ActiveXObject(prefixes[i] + ".XMLHTTP");
} catch (e) {}
}
}
}
var ajax = getHTTPObject();
</script>
conteúdo da página city.php
<? include("admin/conecta.php");
function limparString($str, $enc = "UTF-8"){
$acentos = array(
'A' => '/À|Á|Â|Ã|Ä|Å/',
'a' => '/à|á|â|ã|ä|å/',
'C' => '/Ç/',
'c' => '/ç/',
'E' => '/È|É|Ê|Ë/',
'e' => '/è|é|ê|ë/',
'I' => '/Ì|Í|Î|Ï/',
'i' => '/ì|í|î|ï/',
'N' => '/Ñ/',
'n' => '/ñ/',
'O' => '/Ò|Ó|Ô|Õ|Ö/',
'o' => '/ò|ó|ô|õ|ö/',
'U' => '/Ù|Ú|Û|Ü/',
'u' => '/ù|ú|û|ü/',
'Y' => '/Ý/',
'y' => '/ý|ÿ/',
'a.' => '/ª/',
'o.' => '/º/');
return preg_replace($acentos,
array_keys($acentos),
htmlentities($str,ENT_NOQUOTES, $enc));
}
$consulta = mysql_query("SELECT * FROM bairro WHERE cidade = '$_GET[cidade]' and bairro != '' ORDER BY bairro ASC");// selecionamos todas as subcategorias que pertencem à categoria selecionada$bairro = utf8_encode($row['bairro']);
if($bairro != ""){
echo limparString($bairro) . "|" . limparString($bairro) . ",";
}
}
?>
**Parte do campo Select onde carrega Cidades e os Bairros na página inicial.**
<tr>
<td colspan="2"><span class="preto10">Cidade</span><br>
<select name="cidade" size="1" class="caixa10" style="width:210px;" onFocus="this.className='onfocus'" onBlur="this.className='onblur'" onChange="pesquisar_dados( this.value )">
<option selected value="">Todas</option>
<?
$consulta = mysql_query("SELECT * FROM cidade ORDER BY cidade ASC");
while( $row = mysql_fetch_assoc($consulta)){?>
<option value="<? echo $row['cidade'];?>"><? echo $row['cidade'];?></option>
<? }?>
</select>
</td>
</tr>
<tr>
<td colspan="2"><span class="preto10">Bairro</span><br>
<select name="bairro" onFocus="this.className='onfocus'" onBlur="this.className='onblur'" class="caixa10" style="width:210px;">
<option value="" selected>-----------------------------------</option>
</select></td>
</tr>
Se puderem me dar uma luz seria muito bom, pois eu já procurei no tio Google e também aqui no fórum mas não achei a solução.
Carregando comentários...