Foros del Web » Programando para Internet » Javascript » Frameworks JS »

XML, AJAX y la letra Ñ, AUXILIO!!!

Estas en el tema de XML, AJAX y la letra Ñ, AUXILIO!!! en el foro de Frameworks JS en Foros del Web. Hola, mi problema es el siguiente, tengo una página en PHP que usa AJAX. Basicamente tengo una consulta con una base de datos donde me ...
  #1 (permalink)  
Antiguo 24/09/2007, 09:49
Avatar de aurah  
Fecha de Ingreso: abril-2005
Mensajes: 25
Antigüedad: 19 años, 7 meses
Puntos: 1
Exclamación XML, AJAX y la letra Ñ, AUXILIO!!!

Hola, mi problema es el siguiente, tengo una página en PHP que usa AJAX. Basicamente tengo una consulta con una base de datos donde me traigo nombres de clientes, hasta ahí todo bien, el problema se presenta cuando uno de esos nombres tiene una letra Ñ.
Ya cambie la codificación del XML a UTF-8 as.i: <?xml version='1.0' encoding='UTF-8'?> y el XML ya lee el nombre perfectamente, pero cuando ejecuto la página me da un error de javascript que dice: "Se requiere un objeto".
El código en javascript es el siguiente:
function handleHttpResponse()
{
if (http.readyState == 4 )
{
resultsxml = http.responseXML;
var existe= resultsxml.getElementsByTagName('existe');
if(existe[0].firstChild.nodeValue=='yes')
{
document.getElementByI('cmbtipodocwu').readOnly=tr ue;
document.getElementById('txtnroident').readOnly=tr ue;
var nombrecli=resultsxml.getElementsByTagName('nomclie nte');
document.getElementById('txtnomcliente').value=nom brecli[0].firstChild.nodeValue;
document.getElementById('txtnomcliente').readOnly= true;
document.getElementById('txtnomcliente').readOnly = true;
}
else
{
document.getElementById('resultado').innerHTML = "<CENTER><FONT class=normal color=red><B>El Cliente no existe, por lo tanto no puede hacer la operación, por favor Verifique e intente de nuevo...</B></FONT></CENTER><BR><BR>";
}
}
}


El XML es el siguiente:

<?php
$query="select clientewu.rifci, clientewu.nombre as cliente, clientewu.codtipoid, tipodocwu.siglas as tipoidentificacion from clientewu, tipodocwu where clientewu.codtipoid=tipodocwu.codtipodocwu and clientewu.rifci=".$_GET['txtidentificacion']." and clientewu.codtipoid=".$_GET['cmbtipodocwu'];
$result=pg_exec($conexion,$query) or die ("No se pudo realizar el query");
$number=pg_NUMROWS($result);
if($number>0)
{
$existe="yes";
$nomcliente=pg_result($result, 0, "cliente");
}
else
{
$existe="no";
$nomcliente='';
}
$xml="<?xml version='1.0' encoding='UTF-8'?>\n";
$xml.="<cliente>\n";
$xml.="<nomcliente>$nomcliente</nomcliente>\n";
$xml.="<existe>$existe</existe>\n";
$xml.="</cliente>\n";
header('Content-Type: text/html; charset=iso-8859-1');
echo $xml;

?>


Por favor ayúdenme ya he investigado por todas partes y no consigo nada..

Muchísimas gracias......
  #2 (permalink)  
Antiguo 24/09/2007, 12:42
 
Fecha de Ingreso: agosto-2005
Ubicación: Argentina, Capital Federal
Mensajes: 435
Antigüedad: 19 años, 3 meses
Puntos: 2
Re: XML, AJAX y la letra Ñ, AUXILIO!!!

Como encoding te conviene utilizar ISO-8859-1, osea te quedaría

Código PHP:
$xml='<?xml version="1.0" encoding="ISO-8859-1"?>';
Despues en la cabecera que envias con la función header debes explicitar que se trata de un XML de esta forma:

Código PHP:
header("Content-type: text/xml"); 
Hasta aquí tendrías solucionado el tema de acentos y ñ. Si deseas traer tu XML con otros caracteres "extraños" como ser un "<", debes colocar la construcción CDATA de esta forma:

Código PHP:
$xml.="<nomcliente><![CDATA[$nomcliente]]></nomcliente>"
Saludos.
__________________
R4DS en español | R4DS en inglés
  #3 (permalink)  
Antiguo 24/09/2007, 12:42
 
Fecha de Ingreso: agosto-2005
Ubicación: Argentina, Capital Federal
Mensajes: 435
Antigüedad: 19 años, 3 meses
Puntos: 2
Re: XML, AJAX y la letra Ñ, AUXILIO!!!

Se me duplicó el mensaje y no puedo borrar este. Por favor algun mod, gracias.
__________________
R4DS en español | R4DS en inglés
  #4 (permalink)  
Antiguo 24/09/2007, 13:01
Avatar de aurah  
Fecha de Ingreso: abril-2005
Mensajes: 25
Antigüedad: 19 años, 7 meses
Puntos: 1
Re: XML, AJAX y la letra Ñ, AUXILIO!!!

De verdad muchísimas gracias zaqpz, tenía varios días en esto y no me salía, ya estaba muy frustrada.......

Gracias!!!!!!!!!!
  #5 (permalink)  
Antiguo 24/09/2007, 17:01
Avatar de MaBoRaK  
Fecha de Ingreso: abril-2003
Ubicación: La Paz - Bolivia
Mensajes: 2.003
Antigüedad: 21 años, 6 meses
Puntos: 35
Re: XML, AJAX y la letra Ñ, AUXILIO!!!

loading........


Sería bueno que desheches la posibilidad de poner el encoding en ISO-1234567890
y mejor poner el contenido en etiquetas

Código PHP:
$xml.="<nomcliente><![CDATA[$nomcliente]]></nomcliente>"

connection closed.
__________________

Maborak Technologies
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 02:23.