Avatar billede Lasse Novice
19. maj 2000 - 13:31 Der er 6 kommentarer og
1 løsning

Indsæt javascript funktion i IMG taggen

Jeg har en database SOM JEG IKKE KAN ÆNDRE I. Der ligger ikke billeder i den(eller link) men jeg vil gerne have vist billeder svarende til de enkelte entiteter i databasen. Jeg har et unikt ID der svarer til entiteten. Jeg vil udfra dette tal gerne vise et billede.

Dette er et skoleprojekt så jeg kan hverken skifte/ændre i databasen, ej heller skifte det sprog databasen accesses med. Der bruges Cold Fusion. Det vil sige at man på EN LINIE skal definere hvilke billeder der kommer ud i de forskellige linier i en tabel. Da det skal være forskellige billeder, og dermed ikke statisk, bliver jeg nødt til at bruge Javascript i IMG taggen eller hvad? Her er et uddrag af det:


function billede(nr) {
billede=new array("pic\fodbold.gif", "pic\håndbold.gif", "pic\golfbold.gif", "pic\tennis.gif", "pic\volley.gif", "pic\basket.gif")

return billede(nr)
}

...

"<IMG SRC='javaspcript\billede(#ID#)'>">

hvor #ID# er en attribut i en af tabellerne i databasen.
Avatar billede olebole Juniormester
19. maj 2000 - 17:16 #1
<ole>
I din head skriver du f.eks:
  var billede = new Array("pic\fodbold.gif","pic\håndbold.gif","pic\golfbold.gif","pic\tennis.gif","pic\volley.gif","pic\basket.gif");

Der, hvor du vil have billedet stående, skriver du:
  <script>document.write("<img src="+billede[2]+">");</script>

Som du ser, er din JavaScript-syntaks temmelig forkert ved variabel-deklarationen. Er du i øvrigt sikker på, du mener 'pic\fodbold.gif' og ikke 'pic/fodbold.gif'? Det sidste er rigtigt, hvis billedet ligger i en mappe med navnet 'pic'. Det første sætter billednavnet til 'picfodbold.gif'.
Endvidere kan du ikke bruge skandinaviske tegn i en JavaScript variabel. Dit 'å' skal være '\345', men hvis du henter dem fra en db, burde de jo allerede være i ASCII kode
/Vh
</bole>
Avatar billede olebole Juniormester
19. maj 2000 - 17:17 #2
PS: Ingen luft omkring kommaer i array'et!
Avatar billede olebole Juniormester
19. maj 2000 - 17:22 #3
Dette er også en mulighed:

var billede = new Array("pic\fodbold.gif","pic\håndbold.gif","pic\golfbold.gif","pic\tennis.gif","pic\volley.gif","pic\basket.gif");

function myWrite(which) {
    document.write("<img src="+which+">");
}

Og der, hvor billedet skal udskrives:

<script>myWrite(billede[2]);</script>

/Vh
Avatar billede olebole Juniormester
19. maj 2000 - 17:37 #4
Da jeg nu - i et tilsvarende spørgsmål - så, det er til skolebrug, får du også lige denne:

var billede = new Array("pic\fodbold.gif","pic\håndbold.gif","pic\golfbold.gif","pic\tennis.gif","pic\volley.gif","pic\basket.gif");

function myWrite(which) {
    document.write("<img src="+billede[which]+">");
}

Så bliver kaldet:

<script>myWrite('2');</script>

Tre eksempler, der alle har samme resultat, men fungerer forskelligt. Læg mærke til syntaksforskellene...dem kan du lære af ;-)
/Vh
Avatar billede Lasse Novice
19. maj 2000 - 19:28 #5
Ja, her får du dine point, skønt jeg selv havde fundet ud af det :-) Tak alligevel!
Avatar billede dyrby Nybegynder
19. maj 2000 - 20:29 #6
Ole bole er fortjener alle sine 60 point :)
Avatar billede jumper Nybegynder
22. maj 2000 - 06:08 #7
En lille kommentar:

Netscapoe 4 og højere understøtter entities, hvilket vil sige at netscapé godt kan inkludere indholdet af en variabel som html parameter.

<img src="{billede[2]};">

/Thor
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