Foros del Web » Creando para Internet » HTML »

[SOLUCIONADO] Utilizando <map> y <area> para luego hacer REQUEST ???

Estas en el tema de Utilizando <map> y <area> para luego hacer REQUEST ??? en el foro de HTML en Foros del Web. Hola buen dia! Veran, estoy haciendo una especie de web y me he enfrentado con un problemita: Para empezar, tengo en una página una imagen, ...
  #1 (permalink)  
Antiguo 28/11/2013, 14:15
 
Fecha de Ingreso: febrero-2012
Mensajes: 56
Antigüedad: 12 años, 2 meses
Puntos: 1
Pregunta Utilizando <map> y <area> para luego hacer REQUEST ???

Hola buen dia!

Veran, estoy haciendo una especie de web y me he enfrentado con un problemita:

Para empezar, tengo en una página una imagen, a esta imagen la he mapeado con <map> y ya le he seleccionado sus <area>, ahora bien, quiero que al hacer click, se envie alguna informacion del area que fue seleccionada (ya sea su id, title, etc) para que digamos en la otra página a donde nos mande hagamos un _REQUEST("title") (por ejemplo) y asi saber a que parte de la imagen el usuario ha dado el click y a su vez manipular esta información.



La imagen que empleo es la siguiente y un usuario alumno desea consultar la información acerca de la materia a la que él le ha dado el click






Bueno, esa viene siendo la parte uno, poder detectar a que le dió click y enviar esta informacion.

La razón por la que quiero esta info es para la parte dos la cual consiste en que al enviar esa info, se lo mando a un php que haga ese _REQUEST y con esa información hacer una consulta en la base de datos de ahi, regresarme a la misma página (la anterior) y mostrar a un lado de la imagen el resultado de la consulta en la BD.


No se si me he explicado muy bien, soy muy novato en esto de las aplicaciones web. Cual quier detalle que tenga que aclarar diganme, pues esta tarea me urge y he puesto mi duda aqui porque he visto que hay muchos expertos en el asunto


GRACIAS
  #2 (permalink)  
Antiguo 28/11/2013, 14:53
Avatar de marlanga  
Fecha de Ingreso: enero-2011
Ubicación: Murcia
Mensajes: 1.024
Antigüedad: 13 años, 3 meses
Puntos: 206
Respuesta: Utilizando <map> y <area> para luego hacer REQUEST ???

Los <area> tienen un atributo href que es el enlace a donde te mandará cuando pinches sobre ese elemento. Pon en cada enlace, el parámetro que le quieras pasar. Pero no a otra página, si no a sí misma. Es decir, que se queden así: href="?curso=0A0C"

Esa página, mediante PHP, haz que esté atento a si llega el parámetro curso, usando $_GET["curso"]. Si no llega, dibuja sólo tu mapa de enlaces. Si llega, dibuja el mapa de enlaces y también el div ese que necesitas con los datos recuperados de la BD.
  #3 (permalink)  
Antiguo 28/11/2013, 15:49
Avatar de IsaBelM
Colaborador
 
Fecha de Ingreso: junio-2008
Mensajes: 5.032
Antigüedad: 15 años, 10 meses
Puntos: 1012
Respuesta: Utilizando <map> y <area> para luego hacer REQUEST ???

el elemento area admite el atributo alt y un evento, de tal modo que puedes hacer algo como esto
Cita:
<area shape="" coords="" onclick="fnc(this.alt)" alt="lo que sea">
a partir de aquí es usar ajax
__________________
if(ViolenciaDeGénero) {alert('MUJER ASESINADA');}
  #4 (permalink)  
Antiguo 28/11/2013, 16:54
 
Fecha de Ingreso: febrero-2012
Mensajes: 56
Antigüedad: 12 años, 2 meses
Puntos: 1
Respuesta: Utilizando <map> y <area> para luego hacer REQUEST ???

IsaBelM, perdona pero no entendí nada de lo que me dijiste y no se que es ajax


marlanga, lo que dices suena interesante pero no se si podrias explicarte un poco mas. Por lo que te entiendo a primera vista es que dentro de href envie el ID de la materia, y con eso hacer la consulta en la BD, es correcto?

Empezare a probar a ver que pasa pero MUCHAS GRACIAS por sus respuestas
  #5 (permalink)  
Antiguo 28/11/2013, 17:14
Avatar de marlanga  
Fecha de Ingreso: enero-2011
Ubicación: Murcia
Mensajes: 1.024
Antigüedad: 13 años, 3 meses
Puntos: 206
Respuesta: Utilizando <map> y <area> para luego hacer REQUEST ???

En una url se pueden pasar parámetros al servidor.

Se hace así:

www.mipagina.com?parametro1=5&parametro2=hola

Con eso le he pasado dos parámetros al servidor, parametro1 y parametro2. Si el servidor está preparado, y hace un $_GET["parametro1"], recuperará el valor 5, idem con parámetro 2.

Por otro lado, si una página quiere poner un enlace a sí misma, mandándose parámetro, suponiendo que estemos en www.mipagina.com, pondría:
Código HTML:
Ver original
  1. <a href="www.mipagina.com?parametro1=5&parametro2=hola">Misma pagina</a>
O de forma resumida
Código HTML:
Ver original
  1. <a href="?parametro1=5&parametro2=hola">Misma pagina</a>

Por eso el enlace que puse en el primer post tiene esa forma.

Así que básicamente, tienes que enviar como parámetro en cada HREF de cada <area> (que en el fondo, son enlaces) el identificador de su curso correspondiente.
Todo esto se hace en HTML plano, manualmente.

Y en ese mismo archivo, pero en la parte de PHP, tendrás que comprobar si te llega el parámetro "curso". isset($_GET["curso"]) te dice si ese parámetro existe. Si existe, utulizas ese identificador para recuperar la información del curso de la base de datos, y imprimir esa información en el div correspondiente, debajo del mapeado de la imagen, en un lateral, o donde veas apropiado. Y si no existe la variable curso, o la consulta te dice que no hay ningun curso con ese ID, dejas el div vacío. Todo esto se hace con PHP y un poco de mysql. Es básico, pero si no tienes nociones de proramación, pide ayuda en la facultad de informática xd.
  #6 (permalink)  
Antiguo 28/11/2013, 17:22
 
Fecha de Ingreso: febrero-2012
Mensajes: 56
Antigüedad: 12 años, 2 meses
Puntos: 1
Respuesta: Utilizando <map> y <area> para luego hacer REQUEST ???

Se de programar, pero en mi curso de aplicaciones web de la carrera de programación el profe que me imparte la clase es pésimo entonces no se mucho y se me dificulta.


Gracias me ha quedado mas claro, pero te queria preguntar sobre el detectar si existe, medio te entendi

Entonces seria algo como:

Código HTML:
Ver original
  1. //Codigo php
  2. if ("curso".isset($_GET["curso"]))
  3. {
  4.       $curso = $_GET["curso"];
  5.       $consulta = //Usamos $curso
  6.  
  7.       //Hacemos la consulta en la BD y mostramos
  8. }
  9. else
  10. {
  11. //No hacemos nada
  12. }



Por cierto, porque utilizaste <a href="">
??? no deberia ser area?



Muchisimas gracias me ha quedado mas claro :D
  #7 (permalink)  
Antiguo 28/11/2013, 17:33
Avatar de marlanga  
Fecha de Ingreso: enero-2011
Ubicación: Murcia
Mensajes: 1.024
Antigüedad: 13 años, 3 meses
Puntos: 206
Respuesta: Utilizando <map> y <area> para luego hacer REQUEST ???

isset es una función (no un método).
así que quedaría
Código PHP:
Ver original
  1. $existeCurso=false;
  2. if (isset($_GET["curso"]))
  3. {
  4.       $curso=$_GET["curso"];
  5.      //Hacer todo el codigo de consulta con mysql, y demás, metiendo la información en algún tipo de estructura como un array asociativo de PHP.
  6.     //Quedaría algo parecido a
  7.      $info=array("titulo"=>"calculo", =>"creditos"=>12);
  8.      $existeCurso=true;
  9. }


Luego en la parte de HTML, tendrás algún elemento donde imprimir los datos:

Código HTML:
Ver original
  1. <div>
  2.     <?php if($existeCurso) { ?>
  3.     <h2><?php echo $info["titulo"]; ?></h2>
  4.     <p>Créditos: <?php echo $info["creditos"]; ?></p>
  5.     <?php } ?>
  6. </div>
  #8 (permalink)  
Antiguo 28/11/2013, 19:50
 
Fecha de Ingreso: febrero-2012
Mensajes: 56
Antigüedad: 12 años, 2 meses
Puntos: 1
Respuesta: Utilizando <map> y <area> para luego hacer REQUEST ???

Muchas gracias nuevamente Marlanga, me ha sido de mucha utilizadad tu ayuda, ya estoy haciendo eso y ya llevo un avance.


Creo que cualquier cosa volvere a recurrir a ti en este hilo :D


Gracias!!!
  #9 (permalink)  
Antiguo 29/11/2013, 16:04
Avatar de IsaBelM
Colaborador
 
Fecha de Ingreso: junio-2008
Mensajes: 5.032
Antigüedad: 15 años, 10 meses
Puntos: 1012
Respuesta: Utilizando <map> y <area> para luego hacer REQUEST ???

para futuras lecturas
Cita:
Iniciado por jordy48 Ver Mensaje
IsaBelM, perdona pero no entendí nada de lo que me dijiste y no se que es ajax
hay que pensar si se quiere que se recarge la página cada vez que, en este caso, se haga una consulta a la base de datos. en caso que la respuesta sea no, una de las soluciones es ajax.

ajax es el acronimo de una tecnología basada en javascript asíncrono y xml (no merece mucho su lectura)

como se hace??

en el html de mi anterior post, vemos que el elemento area tiene asignado un evento y éste a su vez invoca a una función. pues esta es la función

Cita:
function fnc(data) {
// creamos el objeto
var obj=new XMLHttpRequest();
// hacemos la petición al archivo .php
obj.open('get', 'archivophp.php?curso='+data, true);
obj.onreadystatechange=function(){
if (obj.readyState==4) {
if(obj.status==200){
// imprimimos la respuesta del .php
document.getElementById('imprimeRespuesta').innerH TML = obj.responseText;
}
}
}
obj.send(null);
}
de tal modo que desde la página A se puede acceder y ejecutar la página B e imprimir la respuesta de la página B en la A sin tener que recargar esta
__________________
if(ViolenciaDeGénero) {alert('MUJER ASESINADA');}

Etiquetas: area, map, mapa, request
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 16:46.