Jump to content


strago

Member Since 26/10/2007
Offline Last Active 12/04/2008, 10:55
-----

Topics I've Started

Acentuação Xajax 0.5 Por Post

10/04/2008, 09:48

Fala ae galera .... to com um probleminha xarope de resolver, vou comentar o problema a minha estrtura e depois descreve-lo , se alguem puder me ajudar eu ficaria muito grato.

estou usando o framework xajax 0.54
PHP 5
MySQL 5.2.4
Apache 2.2.8

Montei um script ajax.common.php
Onde eu ... instancio o xajax , efetuo as cfgs, registro as funcoes ....

Outro script ajax.server.php
Onde eu crio as funções que serão chamadas nas páginas, a maioria das funções usam classes externas que são declaradas no inicio do script, essas classes fazem as consultas, inserções, enfim, são elas que interagem diretamente com o db. Pra ficar mais claro vou colocar um exemplo

# ajax.server.php
require("class.agenda.php");

function facaisso($frm) {
$obj = new xajaxResponse();
$agenda = new agenda;
$agenda->gravar($frm);
if ($agenda->erro) {
$obj->alert($agenda->erro);
return $obj;
} else {
$obj->aler($agenda->resultado);
return $obj;
}
}

o problema é:
O formulário é pasado como um parâmetro, e os campos podem conter caracteres acentuados, quando a classe recebe o formulario, ela testa os dados e salva no db, outra classe faz o processo inverso para a recuperação.
Já tentei usar o htmlentities antes de salvar e na recuperação dos dados, porém , os entities só são aceitos quando eu utilizo o xajax->assign, quando eu tento jogar os valores devolta aos campos com o xajax->script, os acentos ficam doidos.

já tentei fazer de tudo que é jeito, convertendo na ida e nao da volta, na volta e nao na ida, nos dois, em nenhum e sempre da a mesma xxxxxx.

O que eu andei percebendo, é que os dados chegam na classe já com os caracteres acentuados com problemas, ou seja, em algum lugar entre o form html e a classe eles estão sendo lidos em utf-8.

estou usando o $xajax->configure("characterEncoding","ISO-8859-1"); no arquivo ajax.common.php depois da classe ser instanciada, o debug informa que o ajax está usando o ISO-8859-1. é ai que eu não entendo.

O HTML está setado para usar o ISO-8859-1 tb, mas mesmo assim a conversão é feita antes mesmo que eu possa usar o htmlentities.

Vejam:
Usuario -> xajax(form) -> Classe -> db;
Cuiabá -> Cuiabá -> Cuiabá -> db
OK ERRO

Ao meu entender ela deveria proceder como
Cuiabá -> Cuiabá -> Cuiabá -> db

Alguem ?

IPB Skin By Virteq