webForumDet fria alternativet

Visa nästa bild?

JavaScriptur Javascript

32 svar · 829 visningar · startad av jlee · sida 2 av 2

Frågan, av jlee

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 &

Läs frågan i sin helhet →
Medlem sedan apr. 20031 660 inlägg
#21

HEJ!

jlee skrev:

Testade med nedanstående men det funkade tyvärr inte:
...
<%
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
%>

"Funkade inte" är inte mycket att gå på om man ska felsöka, vad fungerar inte?
Det fanns några rena html-fel som är rättade ovan.

jlee skrev:

Använder jag inte detta kodex med databas eftersom id används? För jag vill inte anv databas.

Bara för att en variabel heter id, betyder den inte att den kommer från en databas.
Som vi utrett tidigare måste du på något sätt veta vilken bild du visar, och då döpte jag den siffran till id.

Medlem sedan dec. 2002378 inlägg
#22

Filen som gör att pop upen kommer upp ser ut följande...den viktiga biten ialla fall:

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

Sen url´n i browsern på pop upen som kommit upp är:
http://www2.hemsida.net/elite/kuppa/sp.asp?ShowPic=images/byt5.jpg

..och url´n som kommer vid klick på "nästa" med föregående kod blir: http://www2.hemsida.net/elite/kuppa/sp.asp?id=1

Kanske dessa info kan hjälpa någon till att komma på hur man ska veta vilken bild som ska visas.

Med ovanstående kod blir det ett kryss istället för bild igen..

Medlem sedan apr. 20031 660 inlägg
#23

HEJ!

Du länkar ju från bild 5 till bild 1 (id=1), som inte visas, eftersom du inte har någon img src.
Gissar att du inte har någon request, eller felaktig.

OM du plockar ut din 5:a från bildnamnet byt5.jpg, har du id=5.
Sedan gör du länkar till nästa med id-1 och id+1.

Hur du får fram 5:an beror på hur bildnamnen ser ut, enklast är ju om de heter siffra.jpg, då kör du med Split.
http://www.devguru.com/Technologies/vbscript/quickref/split.html
(FAST: Detta behövs ju ej (här); du kommer ju till denna bild med id=5, och får tag i den via request.querystring("id").)

Att sätta ihop id +.jpg gör du med id+1 & ".jpg" som står i min kod.

Gör gärna ordentlig indentering av din kod, blir mycket enklare att se if-satserna då!

Medlem sedan dec. 2002378 inlägg
#24

Hela scriptet som visar thumbs..

Lika bra att visa hela scriptet:

<script language="JavaScript">
<!--
function MM_reloadPage(init) {  //reloads the window if Nav4 resized
  if (init==true) with (navigator) {if ((appName=="Netscape")&&(parseInt(appVersion)==4)) {
    document.MM_pgW=innerWidth; document.MM_pgH=innerHeight; onresize=MM_reloadPage; }}
  else if (innerWidth!=document.MM_pgW || innerHeight!=document.MM_pgH) location.reload();
}
MM_reloadPage(true);
// -->
</script>

<%

Dim CurFile, PopFileShowSub, ShowPic, PictureNo
Dim strPathInfo, strPhysicalPath

Dim intTotPics, intPicsPerRow, intPicsPerPage, intTotPages, intPage, strPicArray()
intPicsPerRow  = 3
intPicsPerPage = 3

intPage = CInt(Request.QueryString("Page"))
If intPage = 0 Then
	intPage = 1
End If

CurFile = "1.asp"
PopFile = "sp.asp"
%>
<script language="JavaScript">
<!--
function jumppage(sel) 
{
  var i = sel.selectedIndex
  self.location.href = sel.options[i].value
}
// -->
</script>
<script language="JavaScript">
<!-- hide from JavaScript-challenged browsers
function openGalleryWindow(url) {
	if (document.all)
		var xMax = screen.width, yMax = screen.height;
	else
		if (document.layers)
			var xMax = window.outerWidth, yMax = window.outerHeight;
		else
			var xMax = 800, yMax=600;
	var xOffset = (xMax - 200)/2, yOffset = (yMax - 200)/2;
	var xOffset = 100, yOffset = 100;

	popupWin = window.open(url,'new_page','width=700,height=535,screenX='+xOffset+',screenY='+yOffset+',top='+yOffset+',left='+xOffset+',scrollbars=auto,toolbars=no,menubar=no,resizable=yes')
}
// done hiding -->
</script>
<style type="text/css">
<!--
.unnamed1 {
	font-family: Verdana, Arial, Helvetica, sans-serif;
	font-size: 10px;
	font-weight: bold;
	color: #FFFFFF;
	text-decoration: none;
}
.unnamed2 {
	font-family: Verdana, Arial, Helvetica, sans-serif;
	font-size: 9px;
	font-weight: lighter;
	text-decoration: none;
	background-color: #CCCCCC;
	border: thin solid #000000;
}
-->
</style>
</head>

<body bgcolor="#666666" text="#FFFFFF" link="#FFFFFF" vlink="#FFFFFF" alink="#FFFFFF">
<div align="center">
  <table width="350" height="87" border="0" cellpadding="1" cellspacing="0">
    <tr>
      <td valign="top"><div align="center"> <span class="unnamed1"> 
      
          <br>
          </span> 
          <table width="250" border="0" align="center" cellpadding="0" cellspacing="0" bordercolor="#000000" class="unnamed1" id="AutoNumber1">
            <tr> 
              <td align="center" width="20%"> <form action=<%=PopFile%> method="POST">
                  <p class="unnamed1"><font size="1" face="Verdana, Arial, Helvetica, sans-serif">Veckans 
                    bilder :</font> <font size="1" face="Verdana, Arial, Helvetica, sans-serif"> 
                    <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>
                    </font></p>
                </form></td>
            </tr>
          </table>
          <span class="unnamed1"> 
          <%
If ShowPic > " " then
  ShowPic = Replace(ShowPic, " ", "%15")
  Response.Write "<a href='JavaScript:history.go(-1)'><img src='" & ShowPic & "'><BR><BR><font face=""verdana"" size=""1""><b>Tillbaka</b></a>"
Else
%>
          </span> 
          <table width="300" height="8" border="0" align="center" cellpadding="0" cellspacing="5" bordercolor="#000000"  id="AutoNumber1">
            <tr> 
              <%
  strPhysicalPath = Server.MapPath(".\" & ShowSub)
  If ShowSub > " " then
    ShowSub = Replace(ShowSub, " ", "%15")
    Set objFSO = CreateObject("Scripting.FileSystemObject")
    Set objFolder = objFSO.GetFolder(strPhysicalPath)
    Set objFolderContents = objFolder.Files

	 'Antal bilder i subnivån
 
	 intTotPics = 0
    For Each objFileItem in objFolderContents
		If Ucase(Right(objFileItem.Name,4))=".GIF" OR Ucase(Right(objFileItem.Name,4))=".JPG" THEN
			intTotPics = intTotPics + 1
		End if
    Next

	'Antal sidor i suben
 
	If (intTotPics/intPicsPerPage) = (int(intTotPics/intPicsPerPage)) Then
		intTotPages = int(intTotPics/intPicsPerPage)
	Else
		intTotPages = int(intTotPics/intPicsPerPage)+1
	End If
	Redim strPicArray(2,intTotPics)

	'Lagra bildnamnen i en array
	x = 0
	For Each objFileItem in objFolderContents
		If Ucase(Right(objFileItem.Name,4))=".GIF" OR Ucase(Right(objFileItem.Name,4))=".JPG" THEN
			strPicArray(0,x) = objFileItem.Name
			strPicArray(1,x) = Cstr(int(x/intPicsPerPage)+1)
			x = x + 1
		End if
	Next

Request finns ju om du menar dessa?:
ShowSub = request("ShowSub")
ShowPic = request("ShowPic")

Om vi löser detta så är det kanske ett script för arkivet här i forumet...blir rätt bra om det löser sig!

Medlem sedan apr. 20031 660 inlägg
#25

Re: Hela scriptet som visar thumbs..

HEJ!

jlee skrev:

...
Request finns ju om du menar dessa?:
ShowSub = request("ShowSub")
ShowPic = request("ShowPic")
...

Njae, har inte grävt ned mig i koden, du länkar ju till nästa bild med sp.asp?id=n, dvs du måste fråga efter request.querystring("id").

Hur, eller om, dina request behövs ändå, har jag inte fördjupat mig i.

Medlem sedan dec. 2002378 inlägg
#26

Hur då?

Ok, men vet inte hur jag ska skriva request för att kombinera det med id så det blir rätt?

Medlem sedan apr. 20031 660 inlägg
#27

HEJ!

Eftersom det kommer med querystring kan du väl skriva request.querystring("id") som vanligt?

Då vet du vilken bild du ska visa, och kan räkna ut vad du ska länka fram/tillbaka till.

Medlem sedan dec. 2002378 inlägg
#28

Skrev såhär nu (fetstil):

<%
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>"
%>
<%
[B]dim id[/B] 
Set objFSO = CreateObject("Scripting.FileSystemObject")
strPathInfo = Request.ServerVariables("PATH_INFO")
strPhysicalPath = Server.MapPath(strPathInfo)
[B] id=Request.QueryString("ShowPic")
request.querystring("id") [/B] 
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
%>

Detta felmess får jag:
Körningsfel i Microsoft VBScript error '800a000d'
Inkompatibla typer: '[string: "images/1.jpg"]'

Går detta att lösa? eller är jag snett på det?

_______________________________________
I annat fall?
Kan man inte göra en funktion som säger åt scriptet att id1 är = 1.jpg, id2 är = 2.jpg osv.
Inte för att jag klarar det men kanske någon klipsk kan det?

Medlem sedan apr. 20031 660 inlägg
#29

HEJ!

jlee skrev:

...
id=Request.QueryString("ShowPic")
request.querystring("id")
...

Detta felmess får jag:
Körningsfel i Microsoft VBScript error '800a000d'
Inkompatibla typer: '[string: "images/1.jpg"]'

Går detta att lösa? eller är jag snett på det?

Det mesta går att lösa, och detta ska inte vara ett undantag!

Du kan inte skriva request.querystring("id") utan att tilldela det till en variabel, i detta fall id=request.querystring("id").

Vet dock inte om det är den raden du får fel på, borde vara något annat.

Tänk också på det jag skrev tidigare:
"Hur, eller om, dina request behövs ändå, har jag inte fördjupat mig i."

Dvs nu har du två tilldelningar till id, och endast den senaste blir givetvis använd.

Medlem sedan dec. 2002378 inlägg
#30

Id=1

Ja, det blir id=1 hela tiden. Vet inte hur jag ska få scriptet att förstå att 1.jpg och id=1 osv är samma??

Medlem sedan apr. 20031 660 inlägg
#31

HEJ!

Hur kan du få det?

Om id blir tex 5 från querystring, borde kodsnutten ...?id=" & id+1 & """>... göra att länken till nästa blir 6?

Kontrollera var du får dina värden ifrån, och var du vill att de ska vara vissa saker, och varför de inte är det när du vill.
Testutskrifter alltså!

Medlem sedan dec. 2002378 inlägg
#32

Blir samma

Testat på olika sätt och får id=1 hela tiden??

Medlem sedan apr. 20031 660 inlägg
#33

HEJ!

Jag provade dina gamla länkexempel för att kunna se hur du har länkat, men de fungerar inte längre.

Du länkar från en bild, med ?id=en siffra, hämtar in den siffran, använder den siffran för att visa aktuell bild, och minskar/ökar den för att länka till föregående/nästa.

Var går det fel?

143 ms totalt · 3 externa anrop · v20260731065814-full.25f56b17
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
140 ms — hämta tråd, inlägg och bilagor (db)