Avatar billede burgers Nybegynder
12. juni 2004 - 01:28 Der er 18 kommentarer og
1 løsning

Javascript og Access

Hej derude!

Allerførst har jeg følgende kode, som virker som den skal:

strBabe = "<tr><td><a href='index.asp' onmouseover='imageSwap(image" & rs("idBabe") & "') onmouseout='imageSwap(image0)'>" & rs("BabeName") & "</a>

Når jeg kommer ned til javascriptet virker det også, men er det ikke muligt at gøre nedenstående kode dynamisk, så den automatisk generer flere "images" når disse tilføjes i databasen, i stedet for at man skal skrive antallet manuelt?

<script language="JavaScript">
<!--
  image0 = new Image();
  image0.src = "pic0.gif";
  image1 = new Image();
  image1.src = "pic1.gif";
  image2 = new Image();
  image2.src = "pic2.gif";
  image3 = new Image();
  image3.src = "pic3.gif";
  image4 = new Image();
  image4.src = "pic4.gif";
  image5 = new Image();
  image5.src = "pic5.gif";

function imageSwap(image) {
  document.menuPicture.src=image.src;
}
//-->
</script>


Ved ikke om det kan lade sig gøre overhovedet! Hvis i er i tvivl om hvad jeg mener så spørg bare løs, for det fremgår måske ikke helt tydeligt..

På forhånd tak...
Avatar billede burgers Nybegynder
12. juni 2004 - 01:31 #1
Uddybning:

Der ligger pt 5 billeder i databasen, som også er illustreret ved de 5 imagekode linier i javascriptet. Men hvis jeg tilføjer et nyt billede i databasen skal jeg - som det er nu - selv ind og skrive "image6 = new Image(); osv...

Kan man komme uden om det, så den selv søger i databasen og finder hvor mange billeder der ligger, og så derefter giver imagekode linierne det id de har i databasen?
Avatar billede burgers Nybegynder
12. juni 2004 - 02:43 #2
Nu har prøvet med følgende (ligger i et loop):

strBabeImage = rs("idBabe")

strBabe = "<tr><td><a href='index.asp' onmouseover='imageSwap(image" & strBabeImage & "') onmouseout='imageSwap(image0)'>" & rs("BabeName") & "</a></td></tr>"

Og javascriptet:

<script language="JavaScript">
<!--
  image0 = new Image();
  image0.src = "pic0.gif";
  image<%=strBabeImage%> = new Image();
  image<%=strBabeImage%>.src = "pic1.gif";
 
function imageSwap(image) {
  document.menuPicture.src=image.src;
}
//-->
</script>

...Men det virker heller ikke, da han automatisk sætter strBabeImage til den sidste record i loopet. Den skulle jo gerne skifte ved mouseover på linket. Kan man få den til det mon?
Avatar billede roenving Novice
12. juni 2004 - 08:43 #3
Prøv sådan i stedet:

strBabe = "<tr><td><a href='index.asp' onmouseover='imageSwap(image[" & strBabeImage & "]') onmouseout='imageSwap(image[0])'>" & rs("BabeName") & "</a></td></tr>"

<script language="JavaScript">
<!--
  var image new Array();
  image[0] = new Image();
  image[0].src = "pic0.gif";
  for(i=1;<%=strBabeImage%>>=i;i++){
    image[i] = new Image();
    image[i].src = "pic" + i + ".gif";
  }
function imageSwap(image) {
  document.menuPicture.src=image.src;
}
//-->
</script>
Avatar billede burgers Nybegynder
12. juni 2004 - 11:40 #4
Så får jeg fejlen: typer stemmer ikke overens: 'imageSwap'.
Avatar billede roenving Novice
12. juni 2004 - 11:42 #5
Argh, jeg havde lige overset, at navnene var ens:

strBabe = "<tr><td><a href='index.asp' onmouseover='imageSwap(" & strBabeImage & ") onmouseout='imageSwap(0)'>" & rs("BabeName") & "</a></td></tr>"

<script language="JavaScript">
<!--
  var image new Array();
  image[0] = new Image();
  image[0].src = "pic0.gif";
  for(i=1;<%=strBabeImage%>>=i;i++){
    image[i] = new Image();
    image[i].src = "pic" + i + ".gif";
  }
function imageSwap(num) {
  document.menuPicture.src=image[num].src;
}
//-->
</script>
Avatar billede roenving Novice
12. juni 2004 - 11:43 #6
Hov, jeg fik fjernet for meget:

strBabe = "<tr><td><a href='index.asp' onmouseover='imageSwap(" & strBabeImage & ")' onmouseout='imageSwap(0)'>" & rs("BabeName") & "</a></td></tr>"
Avatar billede burgers Nybegynder
12. juni 2004 - 11:47 #7
Jeg får stadig samme fejl...
Avatar billede roenving Novice
12. juni 2004 - 11:52 #8
Uff, der manglede et lighedstegn:

  var image = new Array();
Avatar billede burgers Nybegynder
12. juni 2004 - 12:03 #9
Gør det nogen forskel at mine images ikke starter ved 1, men derimod ved 240? Jeg har ændret i=1 til i=240, ellers virkede den ikke.

Det ser ud til at virke nu... Den kommer dog stadig frem med en fejl, når jeg kører musen over det sidste link?!? Så skriver den "image[...].src er null eller ikke et objekt". Hvorfor gør den det?
Avatar billede roenving Novice
12. juni 2004 - 12:05 #10
Er koden rigtig i linket ?-)

-- og er det det samme tal, som faktisk står i for-løkken (kig i Vis Kilde !-)
Avatar billede burgers Nybegynder
12. juni 2004 - 12:10 #11
Koden i kilden ser ud til at være fin nok:

<a href='index.asp?Babe=257&Username=1' onmouseover='imageSwap(257)' onmouseout='imageSwap(0)'

Nu har jeg prøvet og uploade endnu et billede, og nu virker ovenstående fint ved mouseover, men nu virker mouseover ikke ved det billede jeg lige har uploadet. Det er altså altid den sidste record den er gal med.
Avatar billede roenving Novice
12. juni 2004 - 12:17 #12
Ser script-blokken så sådan ud, når du viser kilde:


<script language="JavaScript">
<!--
  var image new Array();
  image[0] = new Image();
  image[0].src = "pic0.gif";
  for(i=1;258>=i;i++){
    image[i] = new Image();
    image[i].src = "pic" + i + ".gif";
  }
function imageSwap(num) {
  document.menuPicture.src=image[num].src;
}
//-->
</script>
Avatar billede roenving Novice
12. juni 2004 - 12:18 #13
for(i=240;258>=i;i++){//selvfølgelig !-)
Avatar billede roenving Novice
12. juni 2004 - 12:20 #14
-- og lighedstegnet ...
Avatar billede burgers Nybegynder
12. juni 2004 - 12:20 #15
Nej, den ser sådan ud:

<script language="JavaScript">
<!--
  var image new Array();
  image[0] = new Image();
  image[0].src = "pic0.gif";
  for(i=1;257>=i;i++){
    image[i] = new Image();
    image[i].src = "pic" + i + ".gif";
  }
function imageSwap(num) {
  document.menuPicture.src=image[num].src;
}
//-->
</script>

Den får altså ikke den sidste med...
Avatar billede roenving Novice
12. juni 2004 - 12:20 #16
<script language="JavaScript">
<!--
  var image = new Array();
  image[0] = new Image();
  image[0].src = "pic0.gif";
  for(i=240;<%=strBabeImage%>+1>=i;i++){
    image[i] = new Image();
    image[i].src = "pic" + i + ".gif";
  }
function imageSwap(num) {
  document.menuPicture.src=image[num].src;
}
//-->
</script>
Avatar billede burgers Nybegynder
12. juni 2004 - 12:23 #17
Virker perfekt nu!!!

1000 tak for hjælpen - har siddet i adskillige timer og været helt blank.

Smid lige et svar så du kan få nogle yderst velfortjente point.
Avatar billede roenving Novice
12. juni 2004 - 12:24 #18
Velbekomme '-)
Avatar billede roenving Novice
12. juni 2004 - 12:25 #19
-- og tak for point ;~}
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