Foros del Web

Foros del Web (http://www.forosdelweb.com/)
-   Frameworks JS (http://www.forosdelweb.com/f127/)
-   -   XML, AJAX y la letra Ñ, AUXILIO!!! (http://www.forosdelweb.com/f127/xml-ajax-letra-n-auxilio-521276/)

aurah 24/09/2007 09:49

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...... :adios:

zaqpz 24/09/2007 12:42

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.

zaqpz 24/09/2007 12:42

Re: XML, AJAX y la letra Ñ, AUXILIO!!!
 
Se me duplicó el mensaje y no puedo borrar este. Por favor algun mod, gracias.

aurah 24/09/2007 13:01

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!!!!!!!!!! :aplauso:

MaBoRaK 24/09/2007 17:01

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.


La zona horaria es GMT -6. Ahora son las 05:30.

Desarrollado por vBulletin® Versión 3.8.7
Derechos de Autor ©2000 - 2026, Jelsoft Enterprises Ltd.