Avatar billede mazey Praktikant
17. december 2006 - 17:45 Der er 2 kommentarer og
1 løsning

Show hide layer med PHP

Hej eksperter.

Jeg er igang med at finde ud af hvordan man benytter en show/hid funktion med PHP, og det går ikke lige som planlagt ! :)

Jeg har en masse records i en database som jeg trækker ud og hvor det derpå skal være muligt at holde musen henover det der trækkes ud, hvorpå der dukker en div frem og viser noget tekst.

Jeg har fundet mange emner der kunne minde om det, og kan også sagtens få det til at virke med predefinerede værdier, men kan ikke lige overskue hvordan det skal stykkes sammen når det skal være dynamisk.

Det jeg har fundet frem til ser sådan ud (kilde: http://www.eksperten.dk/spm/529487)

<style type="text/css">
.menu2{background:#eee;}
.dropkasse2{border:2px inset blue;visibility:hidden;}
</style>

<script language="JavaScript" type="text/javascript">
function show(element){
  for(i=element;11>i; i++){
    document.getElementById('id'+i).style.visibility = 'visible';
  }
}
function hide(element){
  for(i=element;11>i; i++){
    document.getElementById('id'+i).style.visibility = 'hidden';   
  }
}
</script>


<span id='id1' class='dropkasse2'><div OnMouseOver="show(1); this.style.background='#33333';" OnMouseOut="hide(1);this.style.background='#ddd';" class='menu2'>asdsadasdsad</div></span>

<a onmouseover="show(1)" onmouseout="hide(1)">hih</a>


Nogen der kan hjælpe?
Avatar billede henninghabor Nybegynder
17. december 2006 - 18:42 #1
Hej,

Hvis du i din tabel har en kolonne, der indeholder et unikt id, kan du bruge det:

<span id=\"" . $row["id"] . "\" og så videre.

<a onmouseover=\"" . $row["id"] . "\" og så videre.
Avatar billede mazey Praktikant
17. december 2006 - 21:27 #2
Ja, det har du ret i.

Nu fandt jeg så ud af at det javascript jo kun kører 11 gange og det er jo ikke nok, hvis man har ca. 500 records :)
Desuden så virker det script vidst alligevel ikke efter hensigten, idet den viser alle elementerne i den første, men de andre viser den som den skal.
Samtidigt skulle den div gerne følge teksten derned af. ligenu vises teksten ved mouseover samme sted i toppen.

Nogen der lige har løsningen på det? :D
Avatar billede mazey Praktikant
21. december 2006 - 19:19 #3
Fandt et andet script som var det bedre og har lavet det således:
<style type="text/css">
.tooltip{position:absolute;top:0;left:0;visibility:hidden;border:1px solid black;padding-left:3px;background:#DCE7E0;font-family:verdana;font-size:10px;}
</style>
<script type="text/javascript">
var Ymouse = Xmouse = 0;
var ns6 = (document.getElementById && !document.all)?true:false;
var d = (ns6)?window:document;
d.onmousemove = getMousePos;

function getMousePos(evnt) {
  Ymouse = (ns6)?evnt.pageY:event.y;
  Xmouse = (ns6)?evnt.pageX:event.x;
}

function show(elm){
  if(document.getElementById){
    document.getElementById(elm).style.visibility = 'visible';
  }else if(document.all){
    document.all[elm].style.visibility = 'visible';
  }
  var inf = (ns6)?document.getElementById(elm):document.all[elm];
  inf.style.left = Xmouse + 15;
  inf.style.top = Ymouse;
}

function hide(elm){
  if(document.getElementById){
    document.getElementById(elm).style.visibility = 'hidden';
  }else if(document.all){
    document.all[elm].style.visibility = 'hidden';
  }
}

</script>


<div id="info<?=$hentextra2[id]?>" class="tooltip">

Da du også var med til at lede mig på sporet kan du også få del i pointene ved at lægge et svar.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester