Ir para conteúdo
Fórum Script Brasil

suicidebilly

Membros
  • Total de itens

    1
  • Registro em

  • Última visita

Sobre suicidebilly

suicidebilly's Achievements

0

Reputação

  1. Estou com um problema que já tomou boa parte do meu dia... vou tentar encurtar ao máximo Utilizo uma função em AJAX que faz uma busca no banco de dados e "autocompleta" os demais campos (Endereço, Telefone e etc) ao se preencher o nome do cliente corretamente. O valor para consulta é obtido pelo conteúdo de um textfield chamado clientID function getClientData() { var clientId = document.getElementById('clientID').value; if(clientId!=currentClientID){ currentClientID = clientId ajax.requestFile = 'getClient.php?getClientId='+clientId; ajax.onCompletion = showClientData; ajax.runAJAX(); } } O Arquivo getClient.php efetua uma busca na tabela utilizando o valor obtido com $_GET.:: $res = mysql_query("SELECT * FROM tabela WHERE cliente='".$_GET['getClientId']."'") or die(mysql_error()); Se o campo não tiver nenhum acento funciona perfeitamente (FireFox, Ie, Chrome, etc), porém, se tiver algum acento no campo de busca nenhum resultado é retornado, verifiquei como chegava (ou como era exibido) o resultado do $GET na página de consulta (getClient.php) e as palavras com acento chegam truncadas, por isso a busca dava errado, fiz então o seguinte.:: 1) Na página onde estão os campos TextField utilizo.:: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="pt-br" lang="pt-br"> <head> 2) Na página getClient.php utilizo.:: header("Content-Type: text/html; charset=ISO-8859-1",true); Isso faz com que o resultado venha acentuado corretamente, mas aí que entra o problema que não consigo entender.:: 1) Se dentro do getClient.php eu tentar pegar o valor do GET para consulta utilizando.:: $res = mysql_query("SELECT * FROM tabela WHERE cliente='".$_GET['getClientId']."'") or die(mysql_error()); Funciona no Internet Explorer. Mas não funciona no FireFox. 2) Pensei em utilizar utf8_decode no GET para poder efetuar a consulta. $res = mysql_query("SELECT * FROM tabela WHERE cliente='".utf8_decode($_GET['getClientId'])."'") or die(mysql_error()); Fazendo isso funciona no FireFox mas deixa de funcionar no Internet Explorer. -------- Pensei em uma solução (Ao meu ver porca) que funciona parcialmente, utilizo uma função em PHP que verifica qual o navegador e utiliza a versão com ou sem o decode, porém isso não funciona em outros navegadores como Chrome e Opera. Alguém sabe me explicar porque isso acontece ? Porque quando funciona em um navegador não funciona em outro ??? As vezes o que mais me tira a vontade de desenvolver sistemas elaborados é esta falta de compatibilidade entre os navegadores, a cada novo navegador que lançam me bate um pensamento que é um problema a mais pra lidar na hora de desenvolver algo... passo horas tentando deixar algo compatível com um e perco a compatibilidade com o outro... acredito que outros também pensem assim... mas enfim... agradeço muito qualquer ajuda nesse problema ! Obs.: Todos os campos da minha tabela estão em utf8_general_ci e todos os headers estão devidamente setados, já tentei alterar os headers para UTF8 mas os acentos chegam truncados. Já tentei usar url encode mas o erro no final é o mesmo.
×
×
  • Criar Novo...