Bueno, he estado quitando y poniendo cosas en el javascript y todavía no he conseguido nada. No encuentro ninguna función análoga a setCharEncoding() ni a
decodeUTF8InputOn() para aplicarla en ajax (o al menos ni idea de cómo usarla). Como último recurso cambiaría el .js por lo de xajax (aunque me tocaría transformarlo todo y de paso aprenderlo ;) ) Coloco el código por si a alguna alma cándida se le ocurre alguna solución. Gracias
Código:
function crearObjetoAjax(){
var xmlhttp=false;
try{
// Creacion del objeto AJAX para navegadores no IE
xmlhttp=new ActiveXObject("Msxml2.XMLHTTP");
}
catch(e){
try {
// Creacion del objet AJAX para IE
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
catch(E) { xmlhttp=false; }
}
if (!xmlhttp && typeof XMLHttpRequest!="undefined") { xmlhttp=new XMLHttpRequest(); }
return xmlhttp;
}
function hola(obj,tabla) {
recolocar(obj.id);
// Obtener la instancia del objeto XMLHttpRequest
peticion_http=crearObjetoAjax();
// Preparar la funcion de respuesta
peticion_http.onreadystatechange = muestraContenido;
var miUrl="autocompletar.php"
var parametros="texto="+decodificar_b(obj.value)+"&tabla="+tabla+"&id="+obj.id;
// Realizar peticion HTTP
peticion_http.open("POST", miUrl, true);
peticion_http.setRequestHeader('content-type', 'application/x-www-form-urlencoded;charset=UTF-8');
peticion_http.send(parametros);
////modificado
http.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded; charset=utf-8');
peticion_http.send(null);
function muestraContenido() {
if(peticion_http.readyState == 4) {
if(peticion_http.status == 200) {
lista=document.getElementById('hola2');
lista.innerHTML=peticion_http.responseText;
aux = 20*lista.getElementsByTagName('div').length;
if(aux>100) aux=120;
lista.style.height=aux+'px';
lista.style.display="block";
if(aux==0) lista.style.display="none";
}
}
}
}
Por cierto, al que le sirva el código que lo coja sin problemas. Saludos.
Cita:
Iniciado por mayik81
Yo tuve ese problema cuando añadi a mis proyectos XAJAX.
Si no usas xajax ó ajax ( yo es que no trabajo con ajax a pelo, uso la libreria de xajax) no tienes que hacer nada , simplemente poner bien los headers y ya esta
<?xml version="1.0" encoding="iso-8859-1"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="es" lang="es">
<head>
<meta name="Content-Type" content="text/html; charset=iso-8859-1" />
.....
</head>
Si usas xajax antes de registrar las funciones debes poner:
$xajax->setCharEncoding("iso-8859-1");
$xajax->decodeUTF8InputOn();