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

Acentuação Vs Ajax


Gutto

Pergunta

Na mesma página estou usando caracteres acentuados, caracteres especiais, e exibe corretamente, apenas no combo que é alimentado via AJAX a acentuação tá dando erro...

Já alterei o encoding, charset... Nada resolveu.

O script é esse, peguei a base nesse tuto da revistaphp.

function list_dados( valor ){  
    http.open("GET", "result2.php?categoria=" + valor, true);  
    http.onreadystatechange = handleHttpResponse;  
    http.send(null);
    }
function handleHttpResponse(){  
    var campo_select = document.forms.a_b.subcategoria;  
        if (http.readyState == 4) {    
    campo_select.options.length = 0;    
    var results = http.responseText.split(",");    
    for( i = 0; i < results.length; i++ )    {       
    var string = results[i].split( "|" );      
    campo_select.options[i] = new Option( string[0], string[1] );
    }
        }
            }
function getHTTPObject() {
    var req;try { 
        if (window.XMLHttpRequest) {  
        req = new XMLHttpRequest();  
            if (req.readyState == null) {   
            req.readyState = 1;   
            req.addEventListener("load", function () {   
            req.readyState = 4;   
                if (typeof req.onReadyStateChange == "function")    
                    req.onReadyStateChange();   
                }, false);  
                }  
        return req; 
    }
    
     if (window.ActiveXObject) {  
         var prefixes = ["MSXML2", "Microsoft", "MSXML", "MSXML3"];
              for (var i = 0; i < prefixes.length; i++) {   
              try {
                    req = new ActiveXObject(prefixes[i] + ".XmlHttp");    
      return req;
     } 
         catch (ex) {};
      }
          }
            } 
            catch (ex) {}
    alert("Seu navegador não suporta objetos XmlHttp");
    }
    var http = getHTTPObject();
// Logo após fazer a verificação, é chamada a função e passada // o valor à variável global http.
Esse arquivo faz a consulta solicitada pelo AJAX:
<?php //Dados do MySQL
$host  = "localhost";   // servidor.
$user  = "###########";    // nome do usuário.
$pass  = "###########";    // senha do usuário.
$banco = "############";    // nome do banco de dados.

//NÃO ALTERE NADA ABAIXO.
mysql_connect($host, $user, $pass);
mysql_select_db("adminpt_classificados");
// Guardando o id passado pelo form select
// Trim remove os espaços no inicio e final
// addslashes Retorna uma string com barras invertidas antes de caracteres 
// que precisam ser escapados para serem escapados em query a banco de dados
$categoria = addslashes(trim($_GET["id"])); 
// Fazendo nosso selec para todas subcategorias que pertencem à categoria presente 
// na variavel $categoria acima
$consulta = mysql_query("SELECT * FROM tbl_subcategoria WHERE categoria = '$categoria' ORDER BY nome ASC" ); 
while( $row = mysql_fetch_assoc($consulta) ){  
// subcategoria será apresentada da forma "NOME|CODIGO,..."   
// Maneira a ser tratada no JavaScript   
// Vale lembrar que estamos contatenando o "nome" com a "|" com o "codigo" e com a ","  
echo $row["nome"] . "|" . $row["codigo"] . ","; }
?>

Se eu colocar o cabeçalho html, com head, as metas para determinar o charset, encoding no arquivo que faz a pesquisa, não exibe nada dentro do combo, ele vira uma linha bem fina.

Quando eu coloco um charset totalmente diferente do iso-5589-1, todos os caracteres da página deixam de exibir, mas quando o charset tá correto só o combo exibe os dados errados.

Se dentro do banco de dados eu escrever os nomes usando seqüências de escape, eles não são convertidos para a letra correspondente, exibe a própria sequência, exemplo &aacute; deveria exibir á, mas exibe o próprio código &aacute; ....

Editado por Gutto
Link para o comentário
Compartilhar em outros sites

1 resposta a esta questão

Posts Recomendados

  • 0

galera já vi muitos topicos sobre isso acho que alguém vai ter que ter a coragem de fazer na raça algo que verifique tudo e converta o codigo antes de ser exibido na tela!!!!! :(

Onte na quando estava na facu pensei em algo so não sei se e possivel!

guto pelos seus posts já percebi que você manja então ai vai a minha logica pra tentr resolver esse problema

fazer banco de simbolos(acentos)----> ler todo conteudo do texto----> trocar simbolos por numeros-->

trocar conbinacao de numeros por acentos!!!!

e que como manjo nada dee ajax numca vi como e o problema de acentucação!!

Editado por babaloricha
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...