Voy a pegar algo de código (no todo sino sería una locura) que basicamente se divide en 3 partes.
NOTA:TODO ESTO FUNCIONA PERFECTAMENTE CON MOZILLA , el problema es con IE7 , he buscado en google posibles soluciones pero no he encontrado nada.
1 página donde se muestran los resultados en una capa y se hace la llamada a la función proceso() que es la que cambia el contenido de la capa según se pase el ratón por un lugar u otro de una mapa y de unos enlaces que tengo:
Código:
funciones Javascript<div id="zonas" style="float:left; width:97px" align="left"> <p><a href="#" onmouseover="proceso(7);" >Tarragona</a></p> <p><a href="#" onmouseover="proceso(3);" >Barcelona</a></p> <p><a href="#" onmouseover="proceso(2);" >Sicilia</a></p> <div > <div align="center" id="escaparate"> <div id="gallery" > <div id="inicio" ><p>Seleccione zona del mapa</p></div> <div id="texto" > </div> <div id="images" align="left" > </div> </div> </div>
Código:
// JavaScript Document function getXMLHTTPRequest() { try { req = new XMLHttpRequest(); } catch(err1) { try { req = new ActiveXObject("Msxml2.XMLHTTP"); } catch (err2) { try { req = new ActiveXObject("Microsoft.XMLHTTP"); } catch (err3) { req = false; } } } return req; } var http = getXMLHTTPRequest(); //recupera el CatId del botón del menú donde nos hemos posado function proceso(CatId) { // Procede s?lo si el objeto http no est? ocupado if (http.readyState == 4 || http.readyState == 0) { // recupera el nombre escrito por el usuario en el formulario // name = encodeURIComponent(document.getElementById("myName").value); // ejecuta la p?gina inicio.php desde el servidor // CatId = encodeURIComponent(CatId); http.open("GET", "operations/ajax/intro.php?CatId=" + CatId, true); // define la funci?n para manejar las respuestas del servidor http.onreadystatechange = useHttpResponse; // haz la petici?n al servidor http.send(null); } else // si la conexi?n est? ocupada, prueba de nuevo despu?s de un segundo setTimeout('proceso()', 1000); } // ejecutado autom?ticamente cuando un mensaje es recibido desde el servidor function useHttpResponse() { // se ejecuta s?lo si la transacci?n se ha completado if (http.readyState == 4) { // estatus de 200 indica que la transacci?n se ha completado correctamente if (http.status == 200) { // extraemos el XML recuperado del servidor xmlResponse = http.responseXML; // obtenemos el "document element" (el elemento ra?z) de la estructura XML xmlDocumentElement = xmlResponse.documentElement; // obtenemso el mensaje de texto, que est? en el primer hijo de // el "document element" // contenido.innerHTML += xmlDoc.firstChild.getElementsByTagName('miembro')[i].getAttribute('idmiembro')+' - '; // contenido = xmlDocumentElement.firstChild //http.responseXML.getElementsByTagName("timenow")[0]; title=xmlDocumentElement.getElementsByTagName('name')[0].firstChild.data; texto=xmlDocumentElement.getElementsByTagName('text')[0].firstChild.data; imagenes=xmlDocumentElement.getElementsByTagName('imagenes')[0] ; document.getElementById("inicio").innerHTML = '<i>' + title + '</i>'; document.getElementById("texto").innerHTML = '<i>' + texto + '</i>'; //añadimos las imágenes document.getElementById("images").innerHTML =""; for (i = 0; i < 3; i++){ img=imagenes.getElementsByTagName('imagen')[i].firstChild.data; document.getElementById("images").innerHTML +="<img src='images/zonas/thumbs/"+img+"'/>"; } //xmlDocumentElement.getElementsByTagName('imagen').firstChild.data //document.getElementById("images").innerHTML = // '<i>' + imagen + '</i>';//añadimos las imágenes /* document.getElementById("img").innerHTML = '<i>' + imagen + '</i>';//añadimos las imágenes */ // reiniciar secuencia setTimeout('proceso(CatId)', 1000); } // un estatus HTTP distinto de 200 indica que ha habido un error else { alert("Ha habido un problema al acceder al servidor: " + http.statusText); } } }
Por último el XML
Código:
Un saludo y gracias de antemano. <? header('Content-Type: text/xml'); // generar? la salida XML // genera el header XML echo '<?xml version="1.0" encoding="UTF-8" standalone="yes"?>'; // crea el elemento <response> echo '<response>'; //otenemos los datos de la tabla index para mostrarlos en la portada include("../../fns/db_fns.php"); db_connect() or die (mysql_error()); $CatId=$_GET['CatId']; //$query="SELECT * FROM activate WHERE CodeAct='$Id'"; $consulta="SELECT * FROM intro WHERE ZoneId='".trim($CatId)."'"; //echo $consulta; $images_query="SELECT Link FROM images WHERE Zone='".trim($CatId)."'"; $result=mysql_query($consulta)or die (mysql_error()); $images=mysql_query($images_query)or die (mysql_error()); //$res=db_result_to_array($result); $res=mysql_fetch_array($result) or die (mysql_error()); $img=db_result_to_array($images) ; echo "<name>". utf8_encode($res['Name'])."</name>"; echo "<text>".utf8_encode($res['Text'])."</text>"; echo "<imagenes>"; if (count($img)) { foreach ($img as $row){ echo "<imagen>".trim($row['Link'])."</imagen>" ; }} echo "<imagen></imagen>"; echo "</imagenes>"; // cierra el elemento <response> echo '</response>'; ?>