Avatar billede daft Nybegynder
13. december 2004 - 09:29 Der er 31 kommentarer og
1 løsning

Åbn billed i stort format

Så er den gal igen. Hver gang at jeg tror, at jeg er begyndt at forstå php, støder jeg på et nyt problem (er sikkert bare langsom til at lære).
Mit problem er følgende:
Jeg har et link, som åbner et billed i en <iframe>. Jeg vil gerne have, at man kan klikke enten på billedet eller et link, for at se det i stort format. Ved bare ikke helt hvordan det skal gøres.
Her er mit script som laver udtrækket:
<html>
<head>
<meta http-equiv="Content-Type" content="text/html">
<meta name="GENERATOR" content="DBTools DBManager 2.0">
<title>Results</title>

<body text="#000000" link="#0000EE" vlink="#000000" alink="#3366FF" bgcolor="#eefffa">
<?php
  $db = mysql_connect("localhost", "xxxx", "xxxx");
  if( !$db )
  {
      die("Error connecting to the Server");
      exit;
  }
  $result = mysql_select_db("xxxx", $db);
  if( !$result )
  {
      die("Error selecting Database");
      exit;
  }
?>


<div align="center">
    <center>
    <table border="0" cellpadding="0" cellspacing="1" width="100%">
<?php
    $query  = "SELECT

    varekatalog.varenummer,

    varekatalog.varenavn,

    varekatalog.pris,
varekatalog.billed

FROM

    varekatalog

WHERE

    gruppenummer='4' AND kataloggruppe='4.91'

";

    $result = mysql_query($query,$db);
    if( !$result )
    {
        die("Error executing query");
    }
    echo "<tr>";
    echo "<td align=CENTER bgcolor='#000000'><font face='Arial' size='2' color='#FFFFFF'>Varenummer</font></td>";
    echo "<td align=CENTER bgcolor='#000000'><font face='Arial' size='2' color='#FFFFFF'>Navn</font></td>";
    echo "<td align=CENTER bgcolor='#000000'><font face='Arial' size='2' color='#FFFFFF'>Pris</font></td>";
    echo "</tr>";
    $nrows = mysql_num_rows($result);
    $row  = 0;
    while( $row < $nrows )
    {
              $varenummer = mysql_result($result,$row,"varenummer");
              $varenavn = mysql_result($result,$row,"varenavn");
              $pris = mysql_result($result,$row,"pris");
$billed = mysql_result($result,$row,"billed");
              echo "<tr>";
        echo " <td align='LEFT' bgcolor='#eefffa'><font face='Arial' size='2' color='#000000'><a href='$billed' target='billeder1'> ".$varenummer."</a></font></td>";
        echo " <td align='LEFT' bgcolor='#eefffa'><font face='Arial' size='2' color='#000000'>".$varenavn."</font></td>";
        echo " <td align='RIGHT' bgcolor='#eefffa'><font face='Arial' size='2' color='#000000'>".$pris."</font></td>";
        echo "</tr>";
        $row++;
    }
    mysql_free_result($result);
    mysql_close();
?>
    </table>
    </center>
</div>
</body>
</html>

:) Daft
Avatar billede qub- Novice
13. december 2004 - 10:38 #1
Det er jo bare at linke direkte til billedet?

Ellers forstår jeg ikke rigtig dit spørgsmål..
Avatar billede daft Nybegynder
13. december 2004 - 11:22 #2
Ved ikke helt hvad du mener med at linke direkte på billedet?
Skal det gøres i databasen (billederne er gemt som en url.)

: ) Daft
Avatar billede qub- Novice
13. december 2004 - 11:25 #3
Hvis billedet ligger i mappen: /images/billede.jpg

Så linker du jo bare direkte til det billede.. Så burde du da få den fulde størrelse af det billede!
Avatar billede daft Nybegynder
13. december 2004 - 11:28 #4
Er stadig ikke helt med på hvad du mener.
Kan du ikke lige skære det ud i pap.
Jeg har jo allerede et link som åbner det lille billed i en <iframe>. Skal der så være 2 links?
Avatar billede daft Nybegynder
13. december 2004 - 11:46 #5
Kan godt være, at jeg lige skal prøve at forklare mit problem igen.:
echo " <td align='LEFT' bgcolor='#eefffa'><font face='Arial' size='2' color='#000000'><a href='$billed' target='billeder1'> ".$varenummer."</a></font></td>";

Åbner billedet i et lille format i en <iframe>. Derefter skulle man gerne kunne klikke på dette billede (eller på et link) for at se det større format af billedet.
Giver det lidt mere mening?

: ) Daft
Avatar billede boomshanka Nybegynder
13. december 2004 - 12:11 #6
Skal det store billede også åbnes i din <iframe> eller et nyt vindue?
Avatar billede daft Nybegynder
13. december 2004 - 12:13 #7
Den skal åbne i et nyt vindue.
Avatar billede daft Nybegynder
13. december 2004 - 12:33 #8
Har lige sat pointene op til 100. Det er åbentbar mere kompliceret end jeg troede.

: ) Daft
Avatar billede daft Nybegynder
13. december 2004 - 12:34 #9
åbenbar=åbenbart
Avatar billede boomshanka Nybegynder
13. december 2004 - 12:43 #10
Der er flere måder du kan gøre det på. Med javascript er det lidt nemmere idet du bare kalder metoden window.open() (hvis du besøger den her http://www.wizardscc.com/wizards/newwindow.asp så kan du indtaste præcist hvordan vinduet skal se ud og bagefter kopiere koden ind i dit eget script).

Du kan også godt gøre det med php ved at oprette en php-side, som skal vise dit billede. Navnet på billedet sender du så med over fra Results sådan her:

<a href="ny_php_side.php"?fil=filnavn"><img src="..."></a>

ny_php_side.php henter så billedet med $_GET['$fil'], men det er selvfølgelig lidt mere omstændigt...
Avatar billede boomshanka Nybegynder
13. december 2004 - 12:53 #11
Bortset fra det så er der forskel på at bruge ' (enkeltpling) og " (anførselstegn). Med den her:

echo "...<a href='$billed' target='billeder1'> ".$varenummer."</a></font></td>";

vil browseren oversætte det til:

<a href='$billed' target='billeder1'> 2335</a></font></td> (det er bare et fiktivt varenummer)

...fordi man med enkeltpling angiver værdien skal være netop "hvad man skriver". Bruger man anførselstegn kan php godt finde ud af at den skal indsætte værdien af $billed :-)
Avatar billede boomshanka Nybegynder
13. december 2004 - 12:57 #12
Det her skulle vist kunne gøre det:

while( $row < $nrows ) {
    $varenummer = mysql_result($result,$row,"varenummer");
    $varenavn = mysql_result($result,$row,"varenavn");
    $pris = mysql_result($result,$row,"pris");
    $billed = mysql_result($result,$row,"billed");
    echo "<tr>";
    echo " <td align=\"LEFT\" bgcolor=\"#eefffa\"><font face=\"Arial\" size=\"2\" color=\"#000000\"><a href=\"" . $billed . "\ target=\"_blank\"> ".$varenummer."</a></font></td>";
    echo " <td align=\"LEFT\" bgcolor=\"#eefffa\"><font face=\"Arial\" size=\"2\" color=\"#000000\">".$varenavn."</font></td>";
    echo " <td align=\"RIGHT\" bgcolor=\"#eefffa\"><font face=\"Arial\" size=\"2\" color=\"#000000\">".$pris."</font></td>";
    echo "</tr>";
    $row++;
}
Avatar billede daft Nybegynder
13. december 2004 - 13:07 #13
Det virker desværre ikke. Når jeg bruger det script, som du har ændret, vil den slet ikke hente mine billeder.
Kan godt være at jeg skal prøve med javascript, problemet er bare, at jeg først lige er begyndt at lære php, og jeg har slet ikke nogen idé om, hvordan java virker.
: ) Daft
Avatar billede boomshanka Nybegynder
13. december 2004 - 13:09 #14
også selvom du bare har erstattet din while-sætning med min?
Avatar billede daft Nybegynder
13. december 2004 - 13:11 #15
Jep.
Den skriver bare "page could not be found"
:)
Avatar billede boomshanka Nybegynder
13. december 2004 - 13:18 #16
Hep det er min fejl...du skal lige angive den mappe hvor billedet ligger henne:

while( $row < $nrows ) {
...
echo " <td align=\"LEFT\" bgcolor=\"#eefffa\"><font face=\"Arial\" size=\"2\" color=\"#000000\"><a href=\"ditdomæne.dk/" . $billed . "\ target=\"_blank\"> ".$varenummer."</a></font></td>";
...
}
Avatar billede boomshanka Nybegynder
13. december 2004 - 13:21 #17
...og så lige en gang til uden hovedet under armen:

while( $row < $nrows ) {
...
echo " <td align=\"LEFT\" bgcolor=\"#eefffa\"><font face=\"Arial\" size=\"2\" color=\"#000000\"><a href=\"ditdomæne.dk/mappe/" . $billed . ".jpg\" target=\"_blank\"> ".$varenummer."</a></font></td>";...
}
Avatar billede daft Nybegynder
13. december 2004 - 13:27 #18
Den vil stadig ikke vise det. Mit gamle script åbner billederne fint i target='billede´1' problemet er jo bare, at jeg gerne ville kunne klikke på det billede for at få et nyt vindue med samme billede i et større format.

: )

p.s. er php altid så frusterende?
Avatar billede boomshanka Nybegynder
13. december 2004 - 13:33 #19
Nej, det er muligt fordi jeg ikke har sovet i nat pga mit speciale :-)

Men okay. Har du en adresse jeg kan se det på?
Avatar billede boomshanka Nybegynder
13. december 2004 - 13:35 #20
og nej jeg synes php er helt i orden...Jeg har efterhånden skrevet en håndfuld funktioner, som jeg bruger til fejlfinding (udover warnings og fatal errors), så det er ikke så slemt mere :-)
Avatar billede daft Nybegynder
13. december 2004 - 13:42 #21
www.vetgross.dk
Hvis du går ind under produkter/sprøjter og kanyler og så vælger 2-komponent, så er der lagt midlertidige billeder ind.

: ) Daft
Avatar billede boomshanka Nybegynder
13. december 2004 - 13:47 #22
Jeg kan heller ikke åbne billederne, men det er muligvis på grund af target='billeder1'. Jeg kan ikke finde nogen sider eller frames med det navn
Avatar billede boomshanka Nybegynder
13. december 2004 - 13:49 #23
eller er det sådan man klikker på linket og så bliver billedet vist i højre side?
Avatar billede daft Nybegynder
13. december 2004 - 13:54 #24
<frame>= højre og i den er der 3 <iframe> blank2.html er den som åbner billederne (name=billeder1)

Ved ikke om det er nogen hjælp?
Avatar billede daft Nybegynder
13. december 2004 - 13:56 #25
Ja, det er den måde det gerne skulle fungere på. Har kun fået lagt billeder ind under 2-komponent så det er måske derfor.
Avatar billede boomshanka Nybegynder
13. december 2004 - 14:17 #26
Nu har jeg testet lidt og problemet ligger blandt andet i at lave et link fra en <iframe> i forhold til f.eks. <image>. <iframe> skrives på samme måde som eksempelvis <p></p> (de er hvad man kalder container-tags - man angiver med <> hvor de starter og </> hvor de slutter). Derfor kan man ikke "linke" til det fulde billede ved at skrive:

<a href="testbillede.jpg"><iframe name="billeder1" height="125" width="150" frameborder="0" scrolling="no" src="testbillede.jpg"></iframe></a>

fordi der skal været noget indhold mellem <iframe> og </iframe>. Hvis man var fræk så lagde man et mellemrum ind mellem:

<a href="#"><iframe name="billeder1" height="125" width="150" frameborder="0" scrolling="no" src="#">&nbsp;</iframe></a>

...men <a href="#"> og <...src="#"> skal alligevel være det samme for at det bliver det rigtige billede som dukker op. Det kræver lidt ekstra arbejde, men jeg kigger lige på det :-)
Avatar billede daft Nybegynder
13. december 2004 - 14:20 #27
Mange tak. Ked af at jeg ikke fik det forklaret ordentligt første gang.

:-) Daft
Avatar billede boomshanka Nybegynder
13. december 2004 - 14:30 #28
En hurtig løsning er selvfølgelig at skrive linket i "Navn"-kolonnen med et link sådan her:

while( $row < $nrows )
{
    $varenummer = mysql_result($result,$row,"varenummer");
    $varenavn = mysql_result($result,$row,"varenavn");
    $pris = mysql_result($result,$row,"pris");
    $billed = mysql_result($result,$row,"billed");
    echo "<tr>";
    echo " <td align='LEFT' bgcolor='#eefffa'><font face='Arial' size='2' color='#000000'><a href='$billed' target='billeder1'> ".$varenummer."</a></font></td>";
    echo " <td align='LEFT' bgcolor='#eefffa'><font face='Arial' size='2' color='#000000'>".$varenavn." <a href=\"http:images/" . $varenummer . "\" target=\"_blank\">(se billedet i fuld størrelse)</a></font></td>";
    echo " <td align='RIGHT' bgcolor='#eefffa'><font face='Arial' size='2' color='#000000'>".$pris."</font></td>";
    echo "</tr>";
    $row++;
}

...så sørger du bare for billedfilerne hedder det samme som varenummeret, og så behøver du heller ikke tænke på javascript. Misforstå mig ikke - at klikke på selve billedet kan godt lade sig gøre, men det bliver nok ikke uden at droppe <iframe>-fætteren eller for den sags skyld at bruge javascript.
Avatar billede daft Nybegynder
13. december 2004 - 17:23 #29
Undskyld ventetiden, blev kaldt på arbejde.
Kigger lige på det i morgen, bliver nok nødt til at droppe <iframe>.
Du skal nok få pointene, som tak for alt den tid du har brugt. Held og lykke med specialet.
Smider du lige et svar?

:-) Daft
Avatar billede daft Nybegynder
13. december 2004 - 17:27 #30
Vender tilbage i morgen, hvis det er iorden?
Har kun lige tid til at stjæle 5 min. på computeren på arbejdet.
Avatar billede boomshanka Nybegynder
13. december 2004 - 17:31 #31
Det er i orden - det var ærgeligt det ikke var så ligetil at rette...
Avatar billede daft Nybegynder
14. december 2004 - 10:43 #32
Nogen chance for, at der er nogle eksperter, som har fået en åbenbaring vedrørende mit problem. Er på nuværende tidspunkt villige til at prøve alle slags script.
Skal nok oprette et nyt spørgsmål med point, hvis I kan hjælpe mig med at løse problemet.

:-)
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