Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Bom, eu tenho um script que puxa os estados e cidades do banco de dados diretos pra um input. Ele puxa os estados normal as acentuações estão de boa, mais quando puxa as cidades todas elas ficam com aquelas letras feia ao invés de acentos, como podem ver na print:
/applications/core/interface/imageproxy/imageproxy.php?img=http://j.imagehost.org/0627/Pictchur_ca.png&key=e7633810ab75bb6df0f875cee718b2fc92ea953f907d8d1369c7cc105072ee27" alt="Imagem Postada" />
E aqui as paginas/script:
index.php
<?php require_once("conf.php"); ?>
<?php require_once("conecta.php"); ?>
<?php include("funcPHP/estados.php"); ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="[http://www.w3.org/1999/xhtml">](http://www.w3.org/1999/xhtml)
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title><?php echo $CONF['titulo']; ?></title>
<script language="JavaScript" src="js/jQuery.js"></script>
<script src="js/colorbox/jquery.colorbox.js"></script>
<script src="js/colorbox/jquery.colorbox-min.js"></script>
<script src="js/funcoes.js"></script>
<script>
$(document).ready(function(){
$(".example8").colorbox({width:"50%", inline:true, href:"#Cadastro"});
});
</script>
<style type="text/css">
<!--
@import "css/colorbox.css";
@import "css/modelo.css";
-->
</style>
</head>
<body>
<div id="QuadroDeLogin"><!--ABRE DIV/QUADRO DE LOGIN-->
<p align="center" class="FontesQuadroLogin">Acesse:</p>
<form name="LoginInicio" method="get" >
<p class="Login_Senha">Usuario: <br /><input type="text" name="Usuario" class="InputsInicio" value="Nome de Usuário"
onfocus="limparPadrao(this);" onblur="escreverPadrao(this);"/></p>
<p class="Login_Senha"> Senha: <br /><input type="password" name="Senha" class="InputsInicio" value="12345678"
onfocus="limparPadrao(this);" onblur="escreverPadrao(this);" />
<input type="submit" class="InputsSubmit" value="Entrar" /></p>
<p><a class="example8" href="#">Cadastre-se</a> </p>
</form>
</div><!--FECHA DIV/QUADRO DE LOGIN DO INICIO-->
<div style='display:none'>
<div id='Cadastro' style='padding:10px; background:#FFF;'>
<form name="Registro" method="get">
<h1 class="CadastroIni" align="center"> Formulario de Cadastro </h1>
<h2 class="CadastroIni">Dados Pessoais</h2>
<h3 class="CadastroIni">Nome: <input type="text" class="InputsInicio" name="nome" /></h3>
<h3 class="CadastroIni">Sobrenome: <input type="text" class="InputsInicio" name="sobrenome" /></h3>
<h3 class="CadastroIni">Estado:
<select class="InputsInicio" name="listEstados" onChange="Dados(this.value);">
<option value="0">Selecione o estado</option>
<? for($i=0; $i<$row; $i++) { ?>
<option value="<? echo mysql_result($sql, $i, "cod_estado"); ?>">
<? echo mysql_result($sql, $i, "nom_estado"); ?></option>
<? } ?>
</select></h3>
<h3 class="CadastroIni">Cidade: <select class="InputsInicio" name="listCidades" >
<option id="opcoes" value="0">Primeiro selecione o estado</option>
</select>
</h3>
<h2 class="CadastroIni">Dados da sua conta:</h2>
<h3 class="CadastroIni">Usuário: <input type="text" class="InputsInicio" name="sobrenome" /></h3>
<h3 class="CadastroIni">Senha: <input type="password" class="InputsInicio" name="sobrenome" /></h3>
<h3 class="CadastroIni">Gênero: </h3>
<h3 class="CadastroIni">E-mail: <input type="text" class="InputsInicio" name="sobrenome" /></h3>
</form>
</div>
</div>
</body>
</html>
funcoes.js
// JavaScript Document
//=====================================================================================================================================
// SUMIR VALUE DO INPUT AO CLICA
//=====================================================================================================================================
function limparPadrao(campo) {
if (campo.value == campo.defaultValue) {
campo.value = "";
}
}
function escreverPadrao(campo) {
if (campo.value == "") {
campo.value = campo.defaultValue;
}
}function Dados(valor) {
//verifica se o browser tem suporte a ajax
try {
ajax = new ActiveXObject("Microsoft.XMLHTTP");
}
catch(e) {
try {
ajax = new ActiveXObject("Msxml2.XMLHTTP");
}
catch(ex) {
try {
ajax = new XMLHttpRequest();
}
catch(exc) {
alert("Esse browser não tem recursos para uso do Ajax");
ajax = null;
}
}
}
//se tiver suporte ajax
if(ajax) {
//deixa apenas o elemento 1 no option, os outros são excluídos
document.forms[0].listCidades.options.length = 1;
idOpcao = document.getElementById("opcoes");
ajax.open("POST", "cidades.php", true);
ajax.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
ajax.onreadystatechange = function() {
//enquanto estiver processando...emite a msg de carregando
if(ajax.readyState == 1) {
idOpcao.innerHTML = "Carregando...!";
}
//após ser processado - chama função processXML que vai varrer os dados
if(ajax.readyState == 4 ) {
if(ajax.responseXML) {
processXML(ajax.responseXML);
}
else {
//caso não seja um arquivo XML emite a mensagem abaixo
idOpcao.innerHTML = "Primeiro selecione o estado";
}
}
}
//passa o código do estado escolhido
var params = "estado="+valor;
ajax.send(params);
}
}
function processXML(obj){
//pega a tag cidade
var dataArray = obj.getElementsByTagName("cidade");
//total de elementos contidos na tag cidade
if(dataArray.length > 0) {
//percorre o arquivo XML paara extrair os dados
for(var i = 0 ; i < dataArray.length ; i++) {
var item = dataArray[i];
//contéudo dos campos no arquivo XML
var codigo = item.getElementsByTagName("codigo")[0].firstChild.nodeValue;
var descricao = item.getElementsByTagName("descricao")[0].firstChild.nodeValue;
idOpcao.innerHTML = "Selecione sua cidade";
//cria um novo option dinamicamente
var novo = document.createElement("option");
//atribui um ID a esse elemento
novo.setAttribute("id", "opcoes");
//atribui um valor
novo.value = codigo;
//atribui um texto
novo.text = descricao;
//adiciona o novo elemento
document.forms[0].listCidades.options.add(novo);
}
}
else {
//caso o XML volte vazio, printa a mensagem abaixo
idOpcao.innerHTML = "Primeiro selecione o estado";
}
}
cidades.php
<?
//CONECTA AO MYSQL
require_once("conecta.php");
//RECEBE PARÃMETRO
$pEstado = $_POST["estado"];
//QUERY
$sql = "
SELECT a.cod_cidade, a.nom_cidade
FROM cidade a
WHERE a.cod_estado = ".$pEstado."
ORDER BY a.nom_cidade";
//EXECUTA A QUERY
$sql = mysql_query($sql);
$row = mysql_num_rows($sql);
//VERIFICA SE VOLTOU ALGO
if($row) {
//XML
$xml = "<?xml version=\"1.0\" encoding=\"ISO-8859-1\"?>\n";
$xml .= "<cidades>\n";
//PERCORRE ARRAY
for($i=0; $i<$row; $i++) {
$codigo = mysql_result($sql, $i, "cod_cidade");
$descricao = mysql_result($sql, $i, "nom_cidade");
$xml .= "<cidade>\n";
$xml .= "<codigo>".$codigo."</codigo>\n";
$xml .= "<descricao>".$descricao."</descricao>\n";
$xml .= "</cidade>\n";
}//FECHA FOR
$xml.= "</cidades>\n";
//CABEÇALHO
Header("Content-type: application/xml; charset=iso-8859-1");//PRINTA O RESULTADO
echo $xml;
?>
conecta.php
<?php require_once("conf.php"); ?>
<?
//CONECTA AO MYSQL
$conn = mysql_connect($CONF['host'], $CONF['usuario'], $CONF['senha'])
or die("Erro na conexão com a base de dados");
//SELECIONA A BASE DE DADOS
$db = mysql_select_db($CONF['banco'], $conn)
or die("Erro na seleção da base de dados");
mysql_query("SET NAMES 'utf8'");
mysql_query('SET character_set_connection=utf8');
mysql_query('SET character_set_client=utf8');
mysql_query('SET character_set_results=utf8');
?>
Alguém ai sabe uma solution pra isso?? [:
Pronto salvei.... Funcionou certinho valeu (:
salve todos teus arquivos sem a assinatura BOM
e se você tá usando UTF8, use em tudo..
viu que não combina misturar?