jleeMedlem sedan dec. 2002378 inlägg Denna koden finns i ett pop up fönster som visar en bild från en mapp. Hur kan jag skriva för att kunna klicka nästa och se nästa bild?
Vill tillägga att denna koden: <a href="javascript:history.go(-1);">Tillbaka</a>
inte funkar eftersom man då måste ha bläddrat tidigare i mappen.
<%
ShowPic = request("ShowPic")
ShowPic = Replace(ShowPic, " ", "%20")
Response.Write "<img src='" & ShowPic & "' border=1><BR>"
response.write "<font size='2' font style='verdana'><a href='JavaScript:onClick= window.close()'><font size='2' font style='verdana' font color='#000000'>Stäng fönster</font></A></font></font>"
%>
GuffaMedlem sedan juni 2004533 inlägg För att kunna gå till nästa bild så måste du ju på något sätt ta reda på vilken bild som är nästa bild. Sedan är det bara att länka till samma sida med den nya bilden:
<a href="popupsidan.asp?ShowPic=<%=strNextPicture%>">
Hälften av det du har i koden du använder nu fungerar inte alls. Jag rättade till:
<%
ShowPic = Request.QueryString("ShowPic")
ShowPic = Server.URLEncode(ShowPic)
Response.Write "<img src=""" & ShowPic & """ border=""1""><BR>"
Response.Write "<a href=""javascript:window.close()"">"
Response.Write "<font face=""Verdana"" size=""2"" color=""#000000"">Stäng fönster</font>"
Response.Write "</a>"
%>
jleeMedlem sedan dec. 2002378 inlägg Men hur?
Ok, men var lägger jag in detta i koden:
<a href="popupsidan.asp?ShowPic=<%=strNextPicture%>">
Koden jag skrev är alltså popup sidan med bild...och popup sidan hämtar bild från mapp. Popup filen heter sp.asp
Är dt ngn nytta för dig att se filen som gör thumbnails och tillåter att klicka upp en popup?
Fick inte det att funka
GuffaMedlem sedan juni 2004533 inlägg Du lägger till exempel länken sist i koden för popupen:
<%
ShowPic = Request.QueryString("ShowPic")
ShowPic = Server.URLEncode(ShowPic)
Response.Write "<img src=""" & ShowPic & """ border=""1""><BR>"
Response.Write "<a href=""java script:window.close()"">"
Response.Write "<font face=""Verdana"" size=""2"" color=""#000000"">Stäng fönster</font>"
Response.Write "</a>"
Response.Write "<br>"
Response.Write "<a href=""sp.asp?ShowPic=" & strNextPicture & """>nästa</a>"
%>
jleeMedlem sedan dec. 2002378 inlägg Hittar inte mappen med bilder
Ok, popupen går vidare med "nästa" men den verkar inte hitta bilder trots där finns bilder. Ett kryss visas istället. Den letar i rooten där sp.asp finns medan sp.asp hämtar bilder från mappar eftersom det ska finnas veckovis med bilder. Jag kan inte specificera mappar i scriptet heller eftersom det hela tiden läggs till nya.
J.N.Medlem sedan apr. 20031 660 inlägg HEJ!
Att du får ett kryss för bilden betyder att den inte finns, och varför gör den itne det?
Troligen för att du inte svarat på Guffas fråga om HUR du vet vilken som är nästa bild.
Därför är strNextPicture inte något, och du får koden <img src="" border="1"> som visar ingen bild.
jleeMedlem sedan dec. 2002378 inlägg Det finns 2 filer...
Ok, det finns 2 filer. Dels sp.asp som är pop up rutan och sen 1.asp som gör thumbnails av bilderna i mappar.
Visar en del av 1.asp som jag tror kan ha med det att göra:
Hur tar jag annars reda på vilket som är nästa bild?
<select name="go" size=1 class="unnamed2" onChange="jumppage(this);">
<%
ShowSub = request("ShowSub")
ShowPic = request("ShowPic")
strPathInfo = Request.ServerVariables("PATH_INFO")
strPhysicalPath = Server.MapPath(strPathInfo)
Set objFSO = CreateObject("Scripting.FileSystemObject")
Set objFile = objFSO.GetFile(strPhysicalPath)
Set objFolder = objFile.ParentFolder
Set objFolderContents = objFolder.Files
For each Folder in objFolder.SubFolders
If Left(Folder.Name,1)<>"_" Then
Response.write "<option "
If ShowSub=Folder.Name Then
Response.Write "selected "
End if
Response.Write"value='" & CurFile & "?ShowSub="
Response.Write(Replace(Folder.Name, " ", "%15"))
response.write "'>"
Response.Write(Folder.Name & "</option>")
If ShowSub <= " " Then
ShowSub = Folder.Name
End if
End if
Next
Set objFSO = Nothing
%>
</select>
J.N.Medlem sedan apr. 20031 660 inlägg HEJ!
Den kod du visar tolkar jag som en listning av de olika foldrar som finns i en speciell mapp.
För att kunna bläddra mellan olika bilder, måste du veta hur många det är.
Man kan ju för varje bild du vill visa, med FSO räkna hur många bilder det är, och därigenom förhindra att man loopar för långt.
Men, det innebär också att det görs för varje bild som visas, dvs det borde vara prestandakrävande om man har många besökare.
Filnamnen måste också vara namngivna i följd, annars får man hantera det också.
Andra alternativet är att ha bilderna i en databas; då vet du när en bild visas, vilken som är föregånde/nästa, och kan länka till dessa.
Om man själv har kontrollen över antalet bilder i en mapp, kan man hårdkoda antalet bilder i koden, och kontrollera loopning genom det.
jleeMedlem sedan dec. 2002378 inlägg bilder
Om vi antar att bilderna heter 1.jpg, 2.jpg osv osv. och att jag inte vet antal eftersom det kan variera hur kan jag då koda detta till mitt script?
Vill helst inte använda databas
J.N.Medlem sedan apr. 20031 660 inlägg HEJ!
Då hade jag innan jag skapar kod för nästa länk kollat med FSO om nästa bild finns. Gör den, skriv ut nästa länk, finns den ej, ingen länk.
jleeMedlem sedan dec. 2002378 inlägg Kod
Är det möjligt att ge mig ett kodförslag?
Klarar inte detta själv
J.N.Medlem sedan apr. 20031 660 inlägg HEJ!
Klart du fixar det, FSO är inte så svårt!
Läs allt om FSO:
http://www.devguru.com/Technologies/vbscript/quickref/filesystemobject.html
Kod att börja med, fungerar säkert inte, osäker på strPhysicalPath!
Set objFSO = CreateObject("Scripting.FileSystemObject")
strPathInfo = Request.ServerVariables("PATH_INFO")
strPhysicalPath = Server.MapPath(strPathInfo)
If objFSO.FileExists(strPhysicalPath & id+1 & ".jpg") Then
Response.Write "<a href="?id=" & id+1"">"Nästa bild</a>"
else
Response.Write "<a href="?id=1">"Nästa bild</a>"
End If
Exempel utvecklat från:
http://www.devguru.com/Technologies/vbscript/quickref/filesystemobject_fileexists.html
Bläddra bakåt är lite värre, när du kommer till bild 1 och tönkte dig en länk till 0, vet du inte vad du ska sätta för siffra istället. Alternativet är att veta att det inte är fler än 100 bilder, och loopa nedåt från det med FileExists till en fil hittas.
Denna loop körs endast när man är på bild 1, och då kan man ju ha överseende med ev belastning, eftersom det blir helt självunderhållande kod!
Inte mycket JavaScript i denna tråd!
Kan du inte ha en variabel som räknas upp varje gång en bild läggs till och räknas ned när en bild tas bort. Då blir du av med problemet att du inte vet hur många bilder som finns och kan bläddra både frammåt och bakåt.
jleeMedlem sedan dec. 2002378 inlägg Ok..
Skulle jag kunna få kodförslag.....
jleeMedlem sedan dec. 2002378 inlägg Använder jag inte detta kodex med databas eftersom id används? För jag vill inte anv databas. Om inte - går detta att kombinera med föregående förslag: "en variabel som räknas upp varje gång en bild läggs till och räknas ned när en bild tas bort" ?? och hur skulle det se ut i kod tillsammans med nedanstående:
Set objFSO = CreateObject("Scripting.FileSystemObject")
strPathInfo = Request.ServerVariables("PATH_INFO")
strPhysicalPath = Server.MapPath(strPathInfo)
If objFSO.FileExists(strPhysicalPath & id+1 & ".jpg") Then
Response.Write "<a href="?id=" & id+1"">"Nästa bild</a>"
else
Response.Write "<a href="?id=1">"Nästa bild</a>"
End If
jleeMedlem sedan dec. 2002378 inlägg Testade såhär..
Testade med nedanstående men det funkade tyvärr inte:
<%
ShowPic = request("ShowPic")
ShowPic = Replace(ShowPic, " ", "%20")
Response.Write "<img src='" & ShowPic & "' border=1><BR>"
response.write "<font size='2' font style='verdana'><a href='JavaScript:onClick= window.close()'><font size='2' font style='verdana' font color='#000000'>Stäng fönster</font></A></font></font>"
%>
<%
Set objFSO = CreateObject("Scripting.FileSystemObject")
strPathInfo = Request.ServerVariables("PATH_INFO")
strPhysicalPath = Server.MapPath(strPathInfo)
If objFSO.FileExists(strPhysicalPath & id+1 & ".jpg") Then
Response.Write "<a href="sp.asp?id=" & id+1"">"Nästa bild</a>"
else
Response.Write "<a href="sp.asp?id=1">"Nästa bild</a>"
End If
%>
bossseMedlem sedan juni 2003772 inlägg Eftersom du efterlyser ett kodförslag, så ska du få ett som kanske passar här.
Väldigt enkelt att lägga till och ta bort bilder, samt ev. bildtext.
Går väl även att anpassa för popup om man vill.
<html>
<head>
<style type=text/css>
body { background:green; color:yellow;}
a {color:yellow; text-decoration:none;}
</style>
<script type="text/javascript">
var images = new Array
("bild1.jpg","bild2.jpg","bild3.jpg","bild4.jpg","bild5.jpg","bild6.jpg","bild7.jpg");
var imgtxt = new Array
("Bildtext 1","Bildtext 2","Bildtext 3","Bildtext 4","Bildtext 5","Bildtext 6","Bildtext 7");
var result;
var restxt;
var index = 0;
function showNext(){
if(index < images.length -1){
++index;
result.src = images[index];
restxt.innerHTML = imgtxt[index];
} }
function showPrev(){
if(index > 0){
index;
result.src = images[index];
restxt.innerHTML = imgtxt[index];
} }
function showFirst(){
result = document.getElementById("result");
restxt = document.getElementById("resultText");
result.src = images[index];
restxt.innerHTML = imgtxt[index];
}
</script>
</head>
<body onload="showFirst();">
<input name="prev" type="button" id="prev" value="Bakåt" onclick="showPrev();" />
<input name="prev" type="button" id="prev" value="Framåt" onclick="showNext();"/>
Se bild nr :
<a href=bild1.jpg>1 </a>
<a href=bild2.jpg>2 </a>
<a href=bild3.jpg>3 </a>
<a href=bild4.jpg>4 </a>
<a href=bild5.jpg>5 </a>
<a href=bild6.jpg>6 </a>
<a href=bild7.jpg>7 </a>
<br>
<div>
<img src="" id="result">
<br>
<div id="resultText"></div>
</div>
</body>
</html>
jleeMedlem sedan dec. 2002378 inlägg Då måste jag väl ha lag in vilka bilder jag vill visa i Arrayen? och då blir den ju inte så lättuppdaterad
jleeMedlem sedan dec. 2002378 inlägg Scriptet...
Ok Bosse...testade ditt kodexempel och det är helt ok men om den som ska sköta detta inte vill och kan fylla i asp filen med exakta bild nr och antal så blir det ju fel. Tanken var att man skulle kunna föra upp bilder via nätet direkt och sen ska dessa visas med thumbnails och nästa funk på pop upen.
Annars var ju scriptet mkt bra....har du ngt utv förslag på det? tex att scriptet själv känner av hur många bilder det finns...namnen kan ju vara bild1, bild2 osv för att förenkla.
bossse skrev:
Eftersom du efterlyser ett kodförslag, så ska du få ett som kanske passar här.
Väldigt enkelt att lägga till och ta bort bilder, samt ev. bildtext.
Går väl även att anpassa för popup om man vill.
<html>
<head>
<style type=text/css>
body { background:green; color:yellow;}
a {color:yellow; text-decoration:none;}
</style>
<script type="text/javascript">
var images = new Array
("bild1.jpg","bild2.jpg","bild3.jpg","bild4.jpg","bild5.jpg","bild6.jpg","bild7.jpg");
var imgtxt = new Array
("Bildtext 1","Bildtext 2","Bildtext 3","Bildtext 4","Bildtext 5","Bildtext 6","Bildtext 7");
var result;
var restxt;
var index = 0;
function showNext(){
if(index < images.length -1){
++index;
result.src = images[index];
restxt.innerHTML = imgtxt[index];
} }
function showPrev(){
if(index > 0){
index;
result.src = images[index];
restxt.innerHTML = imgtxt[index];
} }
function showFirst(){
result = document.getElementById("result");
restxt = document.getElementById("resultText");
result.src = images[index];
restxt.innerHTML = imgtxt[index];
}
</script>
</head>
<body onload="showFirst();">
<input name="prev" type="button" id="prev" value="Bakåt" onclick="showPrev();" />
<input name="prev" type="button" id="prev" value="Framåt" onclick="showNext();"/>
Se bild nr :
<a href=bild1.jpg>1 </a>
<a href=bild2.jpg>2 </a>
<a href=bild3.jpg>3 </a>
<a href=bild4.jpg>4 </a>
<a href=bild5.jpg>5 </a>
<a href=bild6.jpg>6 </a>
<a href=bild7.jpg>7 </a>
<br>
<div>
<img src="" id="result">
<br>
<div id="resultText"></div>
</div>
</body>
</html>