Avatar billede jsmitx Nybegynder
05. november 2004 - 15:38 Der er 5 kommentarer og
1 løsning

mouseover på tekst hentet fra database

Jeg henter et menukort fra en database.
Er der nogen der kan fortælle mig hvordan jeg får vist billede i evt et <div> eller lignende når jeg køre musen over de forskellige retter jeg henter.
Billederne ligger i en mappe og har samme navn som overskriften på menuen.
Avatar billede smirnoff Nybegynder
05. november 2004 - 16:57 #1
Du kunne prøve noget i den stil her:

<html>
<head>
    <script type="text/javascript">
        var activediv = null;
   
        function showImage(id) {
            div = document.getElementById("div" + id);
            if(activediv != div && activediv != null)
                closeImage();
            activediv = div;
            activediv.style.display = "";   
        }
       
        function closeImage() {
            if(activediv != null)
                activediv.style.display = "none";   
        }
    </script>
</head>
<body>
    <table border="1" onmouseout="closeImage();">
        <tr onmouseover="showImage(1);"><td>Ret blabla..</td><td><div id="div1" style="display:none;position:absolute"><img src="billede1.jpg" style="height:70px;width:90px"></div></td></tr>
        <tr onmouseover="showImage(2);"><td>Ret blabla 2..</td><td><div id="div2" style="display:none;position:absolute"><img src="billede2.jpg" style="height:70px;width:90px"></div></td></tr>
        <tr onmouseover="showImage(3);"><td>Ret blabla 3..</td><td><div id="div3" style="display:none;position:absolute"><img src="billede3.jpg" style="height:70px;width:90px"></div></td></tr>
    </table>   
</body>
</html>
Avatar billede jsmitx Nybegynder
09. november 2004 - 13:28 #2
Hej smirnoff

Har prøvet at bruge dine functioner på mine tabel.

Men det jeg gerne ville kunne opnå, er hvis det er muligt at få billedet frem i et <div> som jeg selv kan flytte rundt på på skærmen. Er det ikke rigtigt hvis jeg antager at det på nuværende tidspunkt er "fastlåst" inde i <table>´en?


<?php


@ $db = mysql_pconnect('localhost','xxx','xxx');

    if (!$db){
        echo 'Error, Could not connect to database.';
        exit;
    }
    mysql_select_db('xxx');
    $query = 'select * FROM '.$ret.' order by nummer;';
    $result = mysql_query($query);
if ($result != null){
    $num_results = mysql_num_rows($result);
        echo "<table class='kort1'>";
    for ($i=0; $i < $num_results; $i++)
    {
        $return_row = mysql_fetch_array($result);
        echo "<tr>";
        echo "<td>";
        echo $return_row[1];
        echo "</td>";
        echo "<td onmouseout='closeImage();' onMouseOver='showImage($i);'>";
        echo "<div id='div$i' style='position:absolute; left:500px; top:0px; height:170px; width:190; '>";
        echo "<img style='position:absolute; width:170px; height:170px;' src='$i.jpg'>";
          echo "</div>";
        echo $return_row[2];
        echo "</td>";
        echo "<td align='right'>";
        echo $return_row[4];
        echo ",-";
        echo "</td>";
        echo "</tr>";
        echo "<tr>";
        echo "<td>";
        echo "</td>";
        echo "<td >";
        echo $return_row[3];
        echo "<br />";
        echo "<br />";
        echo "</td>";
        echo "</div>";       
        ?>
        <?php
    }
        echo "</table>";
       
       
      }
   
   
}
Avatar billede smirnoff Nybegynder
09. november 2004 - 13:46 #3
Jo det er rigtigt ... dette var jo kun et eksempel på en løsning...

en løsning ville være at flytte en af div'erne ud - give den et entydigt ID og så ændre getElementById() til at referere til den div. Du kan så dynamisk ændre billedets src-attribut til den sti du ønsker ... f.eks i kaldet showImage(<billedenavn>) istedet for id'et.

Du får fat i billedets element ligesom div vhja getElementById eller hvis det er første element efter div: activediv.firstChild.src
Avatar billede jsmitx Nybegynder
09. november 2004 - 15:42 #4
Hej smirnoff

Har jeg prøvet uden held. Noget du gider prøve at give prøve at give et eksempel på ud fra det jeg smed før? Så er der point på vej til dig :-)
Avatar billede smirnoff Nybegynder
09. november 2004 - 16:14 #5
Hej igen

Du kan prøve det her...

<html>
<head>
    <script type="text/javascript">
        var div = null;
   
       
        function showImage(thesrc) {
            div = document.getElementById("imagediv");
            if(div != null) {
                document.getElementById("image").src = thesrc;                
                div.style.display = "";   
            }
        }
       
       
        function closeImage() {
            if(div != null)
                div.style.display = "none";   
        }
    </script>
</head>
<body>
    <table border="1" onmouseout="closeImage();">
        <tr onmouseover="showImage('46.jpg');"><td>Ret blabla..</td></tr>
        <tr onmouseover="showImage('47.jpg');"><td>Ret blabla 2..</td></tr>
        <tr onmouseover="showImage('48.jpg');"><td>Ret blabla 3..</td></tr>
    </table>   
    <div id="imagediv" style="display:none">
        <img id="image" src="46.jpg">
    </div>   
</body>
</html>
Avatar billede smirnoff Nybegynder
09. november 2004 - 16:19 #6
IMG-elementet behøver ikke en src da div'en ikke vises før en mouseover - jeg vil dog foreslå du cacher billederne når siden loader ... f.eks
<script>

var img1 = new Image();
img1.src = 'billede...'
var img2 = new Image();
...


burde snildt kunne laves i en phpløkke

osv ... du kan så overføre img1 som parameter til funktionen og sætte document.getElementById("image").src = img1.src;
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