Avatar billede warren27 Nybegynder
28. oktober 2004 - 11:08 Der er 19 kommentarer og
1 løsning

Random billed, med link til en side

Hejsa, jeg står iøjeblikket overfor et lille problem. Jeg er igang med at lave nogen film-anmeldelser på min hjemmeside. Jeg kunne godt tænke mig at indsætte et JavaScript, der viser et tilfældigt billed af en film, og som samtidige linker til den pågældende film. Jeg tror det er en smal sag, for sådanne nogen eksperter som jer, så jeg glæder mig til at få et svar...

http://www.yalla.dk/film_anmeld.php
Avatar billede ldanielsen Nybegynder
28. oktober 2004 - 11:16 #1
Har du ikke en database bagved siden?
Avatar billede ldanielsen Nybegynder
28. oktober 2004 - 11:18 #2
Hvis du har MySql:

SELECT felter FROM table
          ORDER BY RAND() LIMIT 1

vil vælge en tilfældig post
Avatar billede warren27 Nybegynder
28. oktober 2004 - 11:21 #3
Jaa, der er en database (MySQL), men jeg bruger den ikke, fordi jeg ikke har forstand på det. Men jeg vil helst ha´ et JavaScript...
Avatar billede ldanielsen Nybegynder
28. oktober 2004 - 11:34 #4
var arrFilmBilleder = new Array("film1.jpg", "film2.jpg", "film3.jpg");
randomNumber = Math.ceil(Math.random()*arrFilmBilleder.length));

og så:

document.write("<img src=\"" + arrFilmBilleder[randomNumber - 1] + "\">");
Avatar billede ldanielsen Nybegynder
28. oktober 2004 - 11:36 #5
Der mangler linket:

var arrFilmLinks = new Array("film1.php", "film2.php", "film3.php");
var arrFilmBilleder = new Array("film1.jpg", "film2.jpg", "film3.jpg");
randomNumber = Math.ceil(Math.random()*arrFilmBilleder.length));

document.write("<a href=\"" + arrFilmLinks[randomNumber - 1] + "\"><img src=\"" + arrFilmBilleder[randomNumber - 1] + "\" border=0></a>");
Avatar billede ldanielsen Nybegynder
28. oktober 2004 - 11:37 #6
Fejl i denne linie:
randomNumber = Math.ceil(Math.random()*arrFilmBilleder.length));

skal være
randomNumber = Math.ceil(Math.random()*arrFilmBilleder.length);

sorry
Avatar billede warren27 Nybegynder
28. oktober 2004 - 11:39 #7
Jeg kender ikke så meget til JavaScript, men så vidt jeg kan læse, så er der ikke nogen links, eller hvad...
Avatar billede ldanielsen Nybegynder
28. oktober 2004 - 11:46 #8
Det kom der i version 2.0 :o)
Avatar billede warren27 Nybegynder
28. oktober 2004 - 11:51 #9
Oki, jeg glæder mig. Jeg har siddet og kigget lidt på dette spørgsmål  http://eksperten.dk/spm/441196 - jeg har fået det til at virker en lille smule, dvs, linket kommer til at virke, men billedet bliver bare ikke vist. Jeg har endda skrevet hele den fulde sti til billedet, bare for at være på den sikre side, men der kom bare et rødt kryds.
Avatar billede ldanielsen Nybegynder
28. oktober 2004 - 12:24 #10
Er det med min kode du får rødt kryds? Så prøv at højreklikke på billedet og bed om egenskaber, så får du stien at se, og kan måske se hvad der er galt
Avatar billede warren27 Nybegynder
28. oktober 2004 - 12:27 #11
Nej,jeg har slet ikke prøvet din kode. Jeg har kun brugt den på det link foroven...
Avatar billede roenving Novice
28. oktober 2004 - 13:32 #12
>>ldanielsen

-- hvorfor benytter du dig ikke af den smarthed, det er at bruge

Math.floor(Math.random()*array.length)

-- som altid leverer et fuldstændig (pseudo-) tilfældigt nummer i præcis den rigtige række, så man ikke senere skal kompensere ved at trække fra og/eller lægge til !-)

var arrFilmLinks = new Array("film1.php", "film2.php", "film3.php");
var arrFilmBilleder = new Array("film1.jpg", "film2.jpg", "film3.jpg");
var randomNumber = Math.floor(Math.random()*arrFilmBilleder.length);

document.write("<a href='" + arrFilmLinks[randomNumber] + "'><img src='" + arrFilmBilleder[randomNumber] + "' border='0'></a>");
Avatar billede warren27 Nybegynder
28. oktober 2004 - 19:10 #13
Sorry folkens, men jeg kan ikke få koden til at virke:

Jeg indsat denne kode:

var arrFilmLinks = new Array("http://www.yalla.dk/film_anmeld/w/way_of_the_dragon.php",);
var arrFilmBilleder = new Array("http://www.yalla.dk/film_anmeld/w/billeder/way_of_the_dragon/way_of_the_dragon.JPG",);
var randomNumber = Math.floor(Math.random()*arrFilmBilleder.length);

document.write("<a href='" + arrFilmLinks[randomNumber] + "'><img src='" + arrFilmBilleder[randomNumber] + "' border='0'></a>");

Og som i kan se har jeg kaldt både billed og linket for deres fulde sti, så jeg kan umuligt komme til at skrive en forkert mappe, eller noget i den stil.

Prøv at klik ind på http://www.yalla.dk/film_anmeld.php og se hvilken fejl jeg får fra serveren, det kan være i så bedre kan hjælpe mig ;-)
Avatar billede ldanielsen Nybegynder
28. oktober 2004 - 20:27 #14
<table border="0" width="300" height="50" cellpadding="10">
<td valign="top">

var arrFilmLinks = new Array("http://www.yalla.dk/film_anmeld/w/way_of_the_dragon.php",);
var arrFilmBilleder = new Array("http://www.yalla.dk/film_anmeld/w/billeder/way_of_the_dragon/way_of_the_dragon.JPG",);
var randomNumber = Math.floor(Math.random()*arrFilmBilleder.length);

document.write("<a href='" + arrFilmLinks[randomNumber] + "'><img src='" + arrFilmBilleder[randomNumber] + "' border='0'></a>");

</td>
</table>

erstattes med

<table border="0" width="300" height="50" cellpadding="10">
<tr>
  <td valign="top">
<script language=javascript>
var arrFilmLinks = new Array("http://www.yalla.dk/film_anmeld/w/way_of_the_dragon.php");
var arrFilmBilleder = new Array("http://www.yalla.dk/film_anmeld/w/billeder/way_of_the_dragon/way_of_the_dragon.JPG");
var randomNumber = Math.floor(Math.random()*arrFilmBilleder.length);

document.write("<a href='" + arrFilmLinks[randomNumber] + "'><img src='" + arrFilmBilleder[randomNumber] + "' border='0'></a>");
</script>
  </td>
  </tr>
</table>

Du havde ikke lavet <script> .. </script> omkring koden.

Du har jo kun én film, så det er den samme der kommer hver gang. Men så havde du et komma til sidst i parenteserne, det skal der ikke være, filmene og billederne skal have komma IMELLEM sig (når der kommer flere), der skal ikke være komma efter den sidste.

Du glemmer i øvrigt at lave <tr>'er
Avatar billede ldanielsen Nybegynder
28. oktober 2004 - 20:38 #15
Der er i øvrigt RIGTIG mange fejl i din HTML. du skulle vist lige se kritisk på det:

Dokumentet skal starte med <html> og slutte med </html>

Grundstrukturen i en htmlside er sådan:
<html>
<head>

</head>

<body>

</body>
</html>

Disse skal altid være der.

Mellem <head> og </head> placerer du din Title: <title>bla bla</title>
Din style kan også med fordel placeres der.

Al sideindhold skal placeres mellem <body> og </body>

Grundstrukturen i et Table er:
<table>
  <tr>
    <td>Tekst her</td>
    <td>Tekst her</td>
  </tr>
  <tr>
    <td>Tekst her</td>
    <td>Tekst her</td>
  </tr>
</table>

Tekst kan kun placeres mellem <td> og </td>

Du kan godt placere et table indeni et table (osv), men hele dette table skal ligesom teksten placeres mellem <td> og </td>
Avatar billede warren27 Nybegynder
28. oktober 2004 - 22:09 #16
Tak for hjælpen, det virker nu som det skal http://www.yalla.dk/film_anmeld.php men billederne er lidt for store, det behøver jeg ikke hjælp til.

>>> Til Idanielsen...
Tak for din kritik, men jeg vidste godt i forvejen at min hjemmeside indeholder dårlige koder, jeg er et stort rodehoved, og desværre også for doven til at gøre det rigtigt. Men så længe man kan se min hjemmeside i en browser, så tager jeg det meget afslappet ;-)

Lige en anden ting til sidst, så syntes jeg at det er lidt syndt at koden kommer til at blive meget "aflanget" i notepad, kan jeg gøre noget ved det ?

Forklaring:
link, link, link, link
billed, billed, billed, billed

håber i forstå hvad jeg mener, for iøjeblikket er der jo kun 4 film indsat i scriptet, og der kommer jeg at være flere 100 i løbet af det næste år, og så bliver det lidt svært at overskue.
Avatar billede warren27 Nybegynder
28. oktober 2004 - 22:12 #17
Øhhh, Idanielsen, hvordan giver jeg dig de point du fortjener, jeg er ikke så tit herinde.
Avatar billede ldanielsen Nybegynder
29. oktober 2004 - 09:45 #18
Jeg lægger et svar. Sådan

Held og lykke med det

Lang kode, tja, man kan godt lave linieombrydning, eller noget. vent lige lidt ...
Avatar billede ldanielsen Nybegynder
29. oktober 2004 - 09:53 #19
<script language=javascript>
var arrFilmLinks = new Array();
arrFilmLinks[0] = "/film_anmeld/w/way_of_the_dragon.php";
arrFilmLinks[1] = "/film_anmeld/f/fatal_instinct.php";
arrFilmLinks[2] = "/film_anmeld/t/terkel_i_knibe.php";
arrFilmLinks[3] = "/film_anmeld/k/kops.php";

var arrFilmBilleder = new Array();
arrFilmBilleder[0] = "/film_anmeld/w/billeder/way_of_the_dragon/way_of_the_dragon.JPG";
arrFilmBilleder[1] = "/film_anmeld/f/billeder/fatal_instinct/fatal.JPG";
arrFilmBilleder[2] = "/film_anmeld/t/billeder/terkel_i_knibe/terkel.JPG";
arrFilmBilleder[3] = "/film_anmeld/k/billeder/kops/kops.JPG";

var randomNumber = Math.floor(Math.random()*arrFilmBilleder.length);

document.write("<a href='" + arrFilmLinks[randomNumber] + "'><img src='" + arrFilmBilleder[randomNumber] + "' border='0'></a>");
</script>

Sådan, lad mig vide om det virker, og om du kan se systemet; du laver arrFilmBilleder og arrFilmLinks tomme, og fylder dem så ud. Læg mærke til tallene [0], [1], [2] osv...
Avatar billede warren27 Nybegynder
29. oktober 2004 - 12:01 #20
Jeg håber du fik dine point, og tak for den sidste kode, den er jeg meget glad for, lidt nemmere at overskue.

Go´ weekend
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