Avatar billede thomas-k Nybegynder
05. april 2007 - 13:32 Der er 6 kommentarer og
1 løsning

ASP Slideshow hjælp

Jeg har nedenstående script, som er et rigtig godt slideshow. Dog har jeg nogle rettelser jeg gerne vil have tilføjet, men jeg er fuldstændig lost hvorledes jeg kan komme videre. Det jeg gerne vil have ændret er:

1. Slideshow skal starte af sig selv. Dog må start/stop knap meget gerne stadig forblive.

2. Billedet som præsenteres, skal der tilføjes et link som henviser til kolonnen "id" i databasen. Dvs. at den i adreselinien skal skrive: <a href='beskrivelse.asp?id=" & rs("id") & "'>

3. I stedet for at den skriver "billede x af x", skal der i stedet stå info fra en kolonne i databasen der hedder "beskrivelser".

HÅber der er nogle som kan hjælpe mig.

Scriptet:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">

<html>
<head>
    <title>Slideshow</title>
</head>

<body onload="">
<form id=picfrm name=picfrm>

<%
Set Conn = Server.CreateObject("ADODB.Connection")
DSN = "DRIVER={Microsoft Access Driver (*.mdb)}; "
DSN = DSN & "DBQ=" & Server.MapPath("/vti_log/lager.mdb")
Conn.Open DSN


' tabelnavn
' table = "vare"

' kolonne i tabel indeholdende billedets filnavn
file1 = "file1"

' stien til billederne
imagepath = "billeder/"

'sortering
orderby = "indforelsesdato"


if orderby <> "" then
    orderby = "order by "& orderby
end if

set rs = conn.execute ("select count(id) as totalpics from vare where file1 <> ''")

%>
<script language=javascript>

<%
' opret javascript variabler
response.write "// variabler"& vbcrlf
response.write "var imgpath =""" & imagepath & """;" & vbcrlf
response.write "var pic;"& vbcrlf
response.write "var totalpics =" & rs("totalpics") &";"& vbcrlf
response.write "var currenttime = 0;"& vbcrlf
response.write "var onoff = -1;"& vbcrlf
response.write "var picnum = 0;"& vbcrlf
response.write "var PicArray = new Array("&rs("totalpics") + 1&");" & vbcrlf& vbcrlf& vbcrlf

' hent billeder
set rs = conn.execute ("select " &file1& " from vare where file1 <> ''" & orderby)
i = 1

' opret javscript array
do while not rs.eof
    response.write "PicArray["&i&"]="& "'" & rs(file1) &"'"& vbcrlf
    i = i + 1
    rs.movenext
loop



%>

// funktion til billedskift
function newpic(way){
    // nyt id i array
    pid = picnum + way;
   
    if (pid > totalpics ){
        pid = 1;
        }

    if (pid < 1){
        pid = totalpics;
        }

   
    // husk aktuel værdi
    picnum = pid;

    //status
    document.all.picinfo.innerHTML = "billede " + pid  + " af " + totalpics;

   
    // find billedet i array
    pic = imgpath + PicArray[pid];

    // sæt nyt billede
    document.picfrm.pic.src= pic;
   
   
}

// timer funktion
function WinTimer()
{
    if (onoff > 0 ){
    currenttime = currenttime + 1;
    time = 1//document.picfrm.timesel.value;
    if (currenttime >= time && time > 0 ) {
        newpic(1);
        currenttime = 0;
    }
    }
}

window.setInterval("WinTimer()", 1000);

function setstate(){

onoff = onoff * -1;

if (onoff > 0) {
    document.picfrm.power.value = "Stop Slideshow";
    }
    else{
    document.picfrm.power.value = "Start Slideshow";
    }
}

</script>



<table border=1>
<tr>
   
    <td align=left>
        <input type=button name=power id=power onclick=setstate(); value="Start Slideshow">
    </td>
</tr>
<tr>
    <td onclick="newpic(-1);" style=cursor:hand align=center>
        Forrige
    </td>
    <td onclick="newpic(1);" style=cursor:hand align=center>
        Næste
    </td>   
</tr>
<tr>
    <td colspan=2 align=center>
        <div id="picinfo">
            Info
        </div>
    </td>
</tr>
<tr>
    <td colspan=2><tdcolspan=2>
        <img src="" id=pic name=pic width="100">
    </td>
</tr>
</table>
<script language=javascript>
    newpic(1);
</script>
</form>
</body>
</html>
Avatar billede hooh Nybegynder
05. april 2007 - 13:39 #1
for at starte det automatisk kan du skrive:
<body onload="setstate()">
Avatar billede hooh Nybegynder
05. april 2007 - 13:51 #2
nu er det nok en dårlig løsning, men du kunne nok gøre noget lign.:

do while not rs.eof
    response.write "PicArray["&i&"]="& "'" & rs(file1) &"'"& vbcrlf
    response.write "IDArray["&i&"]="& "'" & rs("ID") &"'"& vbcrlf
    i = i + 1
    rs.movenext
loop
--------------------
    // find billedet i array
    pic = imgpath + PicArray[pid];
    link = IDArray[pid];


    // sæt nyt billede
    document.picfrm.pic.src= pic;
document.picfrm.divPic.innerHTML= "<a href='beskrivelse.asp?id=" & link & "'>" & _
            "<img src='" & pic &" ' id=pic name=pic width='100'></a>"
---------------------------

    <td colspan=2><tdcolspan=2>
<div id=divPic></div>
            </td>


???? tjaa det er vel et forsøg værd :)
Avatar billede thomas-k Nybegynder
05. april 2007 - 15:19 #3
Automatisk start virker fint, men desværre ikke id...
Avatar billede thomas-k Nybegynder
05. april 2007 - 16:01 #4
Jeg har fundet ud af at problemet ligge et sted omkring disse linier:

// sæt nyt billede
    document.picfrm.pic.src= pic;
document.picfrm.divPic.innerHTML= "<a href='beskrivelse.asp?id=" & link & "'>" & _
            "<img src='" & pic &" ' id=pic name=pic width='100'></a>"
Avatar billede thomas-k Nybegynder
05. april 2007 - 16:09 #5
Indtil videre virker nedenstående, dog uden link... Ved ikke rigtig hvordan det kan implanteres. Har prøvet nogle forskellige variationer uden held:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">

<html>
<head>
    <title>Slideshow</title>
</head>

<body onload="setstate()">
<form id=picfrm name=picfrm>

<%
Set Conn = Server.CreateObject("ADODB.Connection")
DSN = "DRIVER={Microsoft Access Driver (*.mdb)}; "
DSN = DSN & "DBQ=" & Server.MapPath("/vti_log/lager.mdb")
Conn.Open DSN


' tabelnavn
' table = "vare"

' kolonne i tabel indeholdende billedets filnavn
file1 = "file1"

' stien til billederne
imagepath = "billeder/"

'sortering
orderby = "indforelsesdato"


if orderby <> "" then
    orderby = "order by "& orderby
end if

set rs = conn.execute ("select count(id) as totalpics from vare where file1 <> ''")

%>
<script language=javascript>

<%
' opret javascript variabler
response.write "// variabler"& vbcrlf
response.write "var imgpath =""" & imagepath & """;" & vbcrlf
response.write "var pic;"& vbcrlf
response.write "var totalpics =" & rs("totalpics") &";"& vbcrlf
response.write "var currenttime = 0;"& vbcrlf
response.write "var onoff = -1;"& vbcrlf
response.write "var picnum = 0;"& vbcrlf
response.write "var PicArray = new Array("&rs("totalpics") + 1&");" & vbcrlf& vbcrlf& vbcrlf
response.write "var IDArray = new Array("&rs("totalpics") + 1&");" & vbcrlf& vbcrlf& vbcrlf

' hent billeder
set rs = conn.execute ("select * from vare where file1 <> ''" & orderby)
i = 1

' opret javscript array
do while not rs.eof
    response.write "PicArray["&i&"]="& "'" & rs(file1) &"'"& vbcrlf
    response.write "IDArray["&i&"]="& "'" & rs("id") &"'"& vbcrlf

    i = i + 1
    rs.movenext
loop



%>

// funktion til billedskift
function newpic(way){
    // nyt id i array
    pid = picnum + way;
   
    if (pid > totalpics ){
        pid = 1;
        }

    if (pid < 1){
        pid = totalpics;
        }

   
    // husk aktuel værdi
    picnum = pid;

    //status
    document.all.picinfo.innerHTML = "billede " + pid  + " af " + totalpics;

   
    // find billedet i array
    pic = imgpath + PicArray[pid];
    link = IDArray[pid];

    // sæt nyt billede
    document.picfrm.pic.src= pic;
   
}

// timer funktion
function WinTimer()
{
    if (onoff > 0 ){
    currenttime = currenttime + 1;
    time = 1//document.picfrm.timesel.value;
    if (currenttime >= time && time > 0 ) {
        newpic(1);
        currenttime = 0;
    }
    }
}

window.setInterval("WinTimer()", 1000);

function setstate(){

onoff = onoff * -1;

if (onoff > 0) {
    document.picfrm.power.value = "Stop Slideshow";
    }
    else{
    document.picfrm.power.value = "Start Slideshow";
    }
}

</script>



<table border=1>
<tr>
   
    <td align=left>
        <input type=button name=power id=power onclick=setstate(); value="Start Slideshow">
    </td>
</tr>
<tr>
    <td onclick="newpic(-1);" style=cursor:hand align=center>
        Forrige
    </td>
    <td onclick="newpic(1);" style=cursor:hand align=center>
        Næste
    </td>   
</tr>
<tr>
    <td colspan=2 align=center>
        <div id="picinfo">
            Info
        </div>



    <td colspan=2><tdcolspan=2>
        <img src='' id=pic name=pic width='100' border='0'>
    </td>


    </td>
</tr>
<tr>

  <td colspan=2><tdcolspan=2>
<div id=divPic></div>
            </td>




</tr>
</table>
<script language=javascript>
    newpic(1);
</script>
</form>
</body>
</html>
Avatar billede thomas-k Nybegynder
05. april 2007 - 16:26 #6
Ahh, nu fik jeg den på denne vis:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">

<html>
<head>
    <title>Slideshow</title>
</head>

<body onload="setstate()">
<form id=picfrm name=picfrm>

<%
Set Conn = Server.CreateObject("ADODB.Connection")
DSN = "DRIVER={Microsoft Access Driver (*.mdb)}; "
DSN = DSN & "DBQ=" & Server.MapPath("/vti_log/lager.mdb")
Conn.Open DSN


' tabelnavn
' table = "vare"

' kolonne i tabel indeholdende billedets filnavn
file1 = "file1"

' stien til billederne
imagepath = "billeder/"

'sortering
orderby = "indforelsesdato"


if orderby <> "" then
    orderby = "order by "& orderby
end if

set rs = conn.execute ("select count(id) as totalpics from vare where file1 <> ''")

%>
<script language=javascript>

<%
' opret javascript variabler
response.write "// variabler"& vbcrlf
response.write "var imgpath =""" & imagepath & """;" & vbcrlf
response.write "var pic;"& vbcrlf
response.write "var totalpics =" & rs("totalpics") &";"& vbcrlf
response.write "var currenttime = 0;"& vbcrlf
response.write "var onoff = -1;"& vbcrlf
response.write "var picnum = 0;"& vbcrlf
response.write "var PicArray = new Array("&rs("totalpics") + 1&");" & vbcrlf& vbcrlf& vbcrlf
response.write "var IDArray = new Array("&rs("totalpics") + 1&");" & vbcrlf& vbcrlf& vbcrlf

' hent billeder
set rs = conn.execute ("select * from vare where file1 <> ''" & orderby)
i = 1

' opret javscript array
do while not rs.eof
    response.write "PicArray["&i&"]="& "'" & rs(file1) &"'"& vbcrlf
    response.write "IDArray["&i&"]="& "'" & rs("id") &"'"& vbcrlf

    i = i + 1
    rs.movenext
loop



%>

// funktion til billedskift
function newpic(way){
    // nyt id i array
    pid = picnum + way;
   
    if (pid > totalpics ){
        pid = 1;
        }

    if (pid < 1){
        pid = totalpics;
        }

   
    // husk aktuel værdi
    picnum = pid;

    //status
    document.all.picinfo.innerHTML = "billede " + pid  + " af " + totalpics;

   
    // find billedet i array
    pic = imgpath + PicArray[pid];
    link = IDArray[pid];
    linket = "beskrivelse.asp?id=" + IDArray[pid];

    // sæt nyt billede
    document.picfrm.pic.src= pic;
}

// timer funktion
function WinTimer()
{
    if (onoff > 0 ){
    currenttime = currenttime + 1;
    time = 1//document.picfrm.timesel.value;
    if (currenttime >= time && time > 0 ) {
        newpic(1);
        currenttime = 0;
    }
    }
}

window.setInterval("WinTimer()", 1000);

function setstate(){

onoff = onoff * -1;

if (onoff > 0) {
    document.picfrm.power.value = "Stop Slideshow";
    }
    else{
    document.picfrm.power.value = "Start Slideshow";
    }
}

</script>



<table border=1>
<tr>
   
    <td align=left>
        <input type=button name=power id=power onclick=setstate(); value="Start Slideshow">
    </td>
</tr>
<tr>
    <td onclick="newpic(-1);" style=cursor:hand align=center>
        Forrige
    </td>
    <td onclick="newpic(1);" style=cursor:hand align=center>
        Næste
    </td>   
</tr>
<tr>
    <td colspan=2 align=center>
        <div id="picinfo">
            Info
        </div>



    <td colspan=2><tdcolspan=2>

        <a href='' id=linket name=linket><img src='' id=pic name=pic width='100' border='0'></a>
    </td>


    </td>
</tr>
<tr>

  <td colspan=2><tdcolspan=2>
<div id=divPic></div>
            </td>




</tr>
</table>
<script language=javascript>
    newpic(1);
</script>
</form>
</body>
</html>

Et kanon script, som andre helt sikkert vil kunne drage nytte af. En stor tak til hooh. Smider du ikke lige et svar, da jeg ikke havde kunne klare den uden din hjælp.
Avatar billede hooh Nybegynder
05. april 2007 - 18:53 #7
altid glad for at lede en på den rette vej :)
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
Kurser inden for grundlæggende programmering

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