Foros del Web » Programando para Internet » PHP »

Mostrar DIV al pasar por encima (PHP + JS)

Estas en el tema de Mostrar DIV al pasar por encima (PHP + JS) en el foro de PHP en Foros del Web. Escrito este aquí porque es mitad PHP mitad JS , estoy realizando un grid (tabla) que al pasar por encima de un CAMPO muestra un ...
  #1 (permalink)  
Antiguo 04/12/2009, 10:32
 
Fecha de Ingreso: enero-2004
Ubicación: here I Am
Mensajes: 437
Antigüedad: 20 años, 2 meses
Puntos: 1
Mostrar DIV al pasar por encima (PHP + JS)

Escrito este aquí porque es mitad PHP mitad JS , estoy realizando un grid (tabla) que al pasar por encima de un CAMPO muestra un DIV que genero para cada linia de la tabla.

El codigo seria algo asi

Código:
<script type="text/javascript">
<!--
//Funcion que muestra el div en la posicion del mouse
function showdiv(event)
{
	//determina un margen de pixels del div al raton
	margin=5;

	//La variable IE determina si estamos utilizando IE
	var IE = document.all?true:false;
	//Si no utilizamos IE capturamos el evento del mouse
	if (!IE) document.captureEvents(Event.MOUSEMOVE)

	var tempX = 0;
	var tempY = 0;

	if(IE)
	{ //para IE
		tempX = event.clientX + document.body.scrollLeft;
		tempY = event.clientY + document.body.scrollTop;
	}else{ //para netscape
		tempX = event.pageX;
		tempY = event.pageY;
	}
	if (tempX < 0){tempX = 0;}
	if (tempY < 0){tempY = 0;}

	//modificamos el valor del id "posicion" para indicar la posicion del mouse
	document.getElementById('posicion').innerHTML="PosX = "+tempX+" | PosY = "+tempY;

	document.getElementById('flotante').style.top = (tempY+margin);
	document.getElementById('flotante').style.left = (tempX+margin);
	document.getElementById('flotante').style.display='block';
	return;
}
</script>

<style type="text/css">
/*order ok: link,visited,hover,active*/
A:link, A:visited, A:hover, A:active{color:#0000ff;}

#flotante
{
	position: absolute;
	display:none;
	font-family:Arial;
	font-size:0.8em;
	border:1px solid #808080;
	background-color:#f1f1f1;
}
</style>

Luego creo la tabla mediante los datos que recojo de una consulta SQL

Código PHP:
$pedidos "Select ...";
    while (
$row=mysql_fetch_array($pedidos))
    {

       
//Creo una DIV por cada registro
       
echo'<div id=flotante>
    '
.$row[CODiGOCLIENTE].'
    <br /><span id="posicion"></span>
    </div>'
;
        
   
       
//Creo el link al pasar por encima que salga la tabla
    
echo"<a href='#' onmouseover=\"showdiv(event);\" onmousemove=\"showdiv(event);\"
        onmouseout=\"javascript:document.getElementById('flotante').style.display='none';\">
           $row[NOMBRE] $row[APELLIDO1]</a>"
;
       } 

Claro si tengo 5 linias me generará 5 div's , por ejemplo con estos registros "CODIGO1,CODIGO2,..." y si miro el codigo HTML estan las 5 div's creadas pero claro con el mismo nombre "flotante" por lo tanto siempre muestra la primera.

Espero haverme explicado.

salu2 radge
__________________
Nuevo foro sobr el mundo del motor - Renault foro
http://www.renaultforo.com
  #2 (permalink)  
Antiguo 04/12/2009, 10:34
Avatar de jackson666  
Fecha de Ingreso: noviembre-2009
Ubicación: Buenos Aires, Argentina
Mensajes: 1.971
Antigüedad: 14 años, 5 meses
Puntos: 65
Respuesta: Mostrar DIV al pasar por encima (PHP + JS)

Buenisimo, y el problema es???que duda? que linea? que error? de js o de php?
  #3 (permalink)  
Antiguo 04/12/2009, 10:54
 
Fecha de Ingreso: enero-2004
Ubicación: here I Am
Mensajes: 437
Antigüedad: 20 años, 2 meses
Puntos: 1
Respuesta: Mostrar DIV al pasar por encima (PHP + JS)

Cita:
Iniciado por jackson666 Ver Mensaje
Buenisimo, y el problema es???que duda? que linea? que error? de js o de php?
Claro si tengo 5 linias me generará 5 div's , por ejemplo con estos registros "CODIGO1,CODIGO2,..." y si miro el codigo HTML estan las 5 div's creadas pero claro con el mismo nombre "flotante" por lo tanto siempre muestra la primera.

Espero haverme explicado.

salu2 radge
__________________
Nuevo foro sobr el mundo del motor - Renault foro
http://www.renaultforo.com
  #4 (permalink)  
Antiguo 04/12/2009, 11:03
Avatar de jackson666  
Fecha de Ingreso: noviembre-2009
Ubicación: Buenos Aires, Argentina
Mensajes: 1.971
Antigüedad: 14 años, 5 meses
Puntos: 65
Respuesta: Mostrar DIV al pasar por encima (PHP + JS)

Disculpame, pero no entiendo a q te referis con "siempre me muestra la primera" Que es exactamente lo que queres? Que se te muestren todos los div's al pasar por un lado determinado? o que se te muestre 1 solo?
  #5 (permalink)  
Antiguo 04/12/2009, 13:08
 
Fecha de Ingreso: enero-2004
Ubicación: here I Am
Mensajes: 437
Antigüedad: 20 años, 2 meses
Puntos: 1
Respuesta: Mostrar DIV al pasar por encima (PHP + JS)

Cita:
Iniciado por jackson666 Ver Mensaje
Disculpame, pero no entiendo a q te referis con "siempre me muestra la primera" Que es exactamente lo que queres? Que se te muestren todos los div's al pasar por un lado determinado? o que se te muestre 1 solo?

si tengo 5 registros se deben crear las 5 div's pero solo mostrar la que toca , es eso lo que intento

salu2 radge
__________________
Nuevo foro sobr el mundo del motor - Renault foro
http://www.renaultforo.com
  #6 (permalink)  
Antiguo 15/12/2009, 02:17
 
Fecha de Ingreso: enero-2004
Ubicación: here I Am
Mensajes: 437
Antigüedad: 20 años, 2 meses
Puntos: 1
Respuesta: Mostrar DIV al pasar por encima (PHP + JS)

Buenas he mirado de hacerlo con jquery pero la verdad no he tenido mucho éxito no he conseguido hacerlo.

Alguna sugerencia ?

salu2 radge
__________________
Nuevo foro sobr el mundo del motor - Renault foro
http://www.renaultforo.com
  #7 (permalink)  
Antiguo 15/12/2009, 03:35
serser
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Mostrar DIV al pasar por encima (PHP + JS)

Los IDs debes ser únicos y tú se lo estás aplicando a todos los <div>, por eso sólo te muestra el del primero. Puedes probar, en vez de crear un id #flotante, crear una clase flotatante y a cada <div> asignarle un name diferente, para así poder diferenciarlos. O crear diferentes ID para cada <div>...

Y lo mismo pasa con el ID "posicion"

Última edición por serser; 15/12/2009 a las 03:40
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 22:00.