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

¿como se puede devolver xml con carácteres especiales?

Estas en el tema de ¿como se puede devolver xml con carácteres especiales? en el foro de Frameworks JS en Foros del Web. Estoy aprendiendo ajax y antes de seguir avanzando quiero praticar por mi cuenta para probar si he entendido y me puse ha hacer un sistema ...
  #1 (permalink)  
Antiguo 07/03/2010, 10:56
 
Fecha de Ingreso: julio-2009
Mensajes: 178
Antigüedad: 14 años, 9 meses
Puntos: 1
¿como se puede devolver xml con carácteres especiales?

Estoy aprendiendo ajax y antes de seguir avanzando quiero praticar por mi cuenta para probar si he entendido y me puse ha hacer un sistema seensillo pero práctico que confirma si el nombre de usuario esta disponible, el script php me devuelve un xml con el texto a mostrar el cualquiera de los dos casos pero el problema es que no puedo usar tíldes ni etiquetas ni nada que no sea texto plano y cómo quiero en lo posible hacer buen uso de la ortografía cuando haga sitios serior pues quiere coger el hábito desde ahora ademas que quiero que cuando esté usado el nombre usuario ponerle una etiqueta span o div con clase "rojo" y para cuando esté lbre clase "verde" pero si no me acepra las etiqueta ¿cómo puedo hacer?

les pondré los códigos
index.html
Código:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Documento sin título</title>
<script type="text/javascript" language="javascript" src="comprueba.js" ></script>
</head>

<body>
<div id="contenedor">
   <table width="500" border="0" cellspacing="0" cellpadding="0">
  <tr>
    <td width="180"><form>
       <input type="text" size="30" name="campotexto" id="username" onkeyup="comprueba()" />
   </form>
   </td>
    <td width="320"><div id="respuesta"></div></td>
  </tr>
</table>

</div>
</body>
</html>
comprueba.php
Código:
<?php

/**
 * @author 
 * @copyright 2010
 */
 $username = $_GET[username];
 
 function db_connect() {
	$link = mysql_connect("localhost", "root", "oooooo");
	$conn = mysql_select_db("pruebas", $link);
}

 db_connect();
 $query = "SELECT username FROM usuarios WHERE username='$username'";
 $resultado = mysql_query($query);
 $num = mysql_num_rows($resultado);
  

// genera la salída XML
header('Content-Type: text/xml');
// genera el header XML
echo '<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>'; 

 // crea el elemento response
 echo '<response>';
 
 
 if($num > 0) {
	echo "El nombre de usuario que ha elegido No esta disponible, por favor elija otro";
} else {
	echo "El nombre de usuario esta dispponible para usted";
}
 
 
 echo '</response>';

?>
comprueba.js
Código:
/**
 * @author JORDAN
 */
function getXMLHTTPRequest() {
	var req = false;
	try {
		req = new XMLHttpRequest();
	} catch(err1) {
		try {
			req = new ActiveXObject("Msxml2.XMLHTTP");
		} catch(err2) {
			try {
				req = ActiveXObject("Microsoft.XMLHTTP");
			} catch(err3) {
				req = false;
			}
		}
	}
	return req;
}

var http = getXMLHTTPRequest();

function comprueba() {
	if(http.readyState == 4 || http.readyState == 0) {
		var username = encodeURIComponent(document.getElementById("username").value);
		// creamos la url
		var url = "comprueba.php?username=" + username;
		// abrimos la url en el servidor
		http.open("GET", url, true);
		// define la funcion para manejar la respuesta del servidor
		http.onreadystatechange = useHttpResponse;
		// enviamos
		http.send(null);
	} else {
		setTimeout("proceso()", 300);
	}
} 

// ejecutado automáticamente cuando obtiene respuesta del servidor
function useHttpResponse() {
	if(http.readyState == 4) {
		if(http.status == 200) {
			// extraemos el XML recibido del servidor
			xmlResponse = http.responseXML;
			// obtenemos el document element (elemento raíz) de la estructura XML
			xmlDocumentElement = xmlResponse.documentElement;
			// obtenemos el mensaje de texto que está en el prime hijo del "document element";
			msj = xmlDocumentElement.firstChild.data;
			// actualizamos la pantalla del usuario con los datos devueltos del servidor
			document.getElementById("respuesta").innerHTML = msj
			 
		} // un status distinto a 200 indica que es un error
		else {
			alert("ha ocurrido un error: " + http.statusText);
		}
	}
}
  #2 (permalink)  
Antiguo 07/03/2010, 13:13
Avatar de caricatos
Moderador
 
Fecha de Ingreso: abril-2002
Ubicación: Torremolinos (Málaga)
Mensajes: 19.607
Antigüedad: 22 años
Puntos: 1284
Respuesta: ¿como se puede devolver xml con carácteres especiales?

Hola:

Tan solo encierra la respuesta entre cdatas...

<![CDATA[$item]]>

Saludos
__________________
Por favor:
No hagan preguntas de temas de foros en mensajes privados... no las respondo

Última edición por caricatos; 07/03/2010 a las 13:14 Razón: ortografía
  #3 (permalink)  
Antiguo 07/03/2010, 14:02
 
Fecha de Ingreso: julio-2009
Mensajes: 178
Antigüedad: 14 años, 9 meses
Puntos: 1
Respuesta: ¿como se puede devolver xml con carácteres especiales?

Lo hice y no m funcionó, ¿podrias escribirme esas líneas de codigo para ver bien cómo dberia quedar?
  #4 (permalink)  
Antiguo 09/03/2010, 23:45
Avatar de MaBoRaK  
Fecha de Ingreso: abril-2003
Ubicación: La Paz - Bolivia
Mensajes: 2.003
Antigüedad: 21 años
Puntos: 35
Respuesta: ¿como se puede devolver xml con carácteres especiales?

loading...........


Escribe como pusiste CDATA y te corregimos.


connection closed.
__________________

Maborak Technologies
  #5 (permalink)  
Antiguo 11/03/2010, 09:42
 
Fecha de Ingreso: julio-2009
Mensajes: 178
Antigüedad: 14 años, 9 meses
Puntos: 1
Respuesta: ¿como se puede devolver xml con carácteres especiales?

es un dtd que cogí de una de las prácticas

Código:
<!ELEMENT partido (partido+)>
<!ELEMENT equipo (nombre, entrenador, jugador)>
<!ATTLIST equipo numero #CDATA #REQUIRED>
<!ELEMENT nombre (#PCDATA)>
<!ELEMENT entrenador (#PCDATA)>
<!ELEMENT jugador (#PCDARA)>

Etiquetas: ajax, devolver, especiales, xml
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 14:28.