webForumDet fria alternativet

Nästa / Föregående funktion

ASP

13 svar · 1 298 visningar · startad av SGuncel

Medlem sedan jan. 2007217 inlägg
Frågan#1

Hej!

Jag har försökt göra en "Nästa / Föregående" funktion via läsa ett artikel.
Men det gick inte bra. Får detta fel meddelandet.

**Microsoft VBScript compilation error '800a03ea'
Syntax error
/o/m/e/omeeeru/default66.asp, line 110

Else
^**

Kod: http://www.aspkoll.se/code/Index.asp?id=611
Artikel: http://www.aspkoll.se/artikel/52-getrows-paging-naesta--foeregaaende/

Medlem sedan aug. 20011 346 inlägg
#2

SGuncel skrev:

Hej!

Jag har försökt göra en "Nästa / Föregående" funktion via läsa ett artikel.
Men det gick inte bra. Får detta fel meddelandet.

**Microsoft VBScript compilation error '800a03ea'
Syntax error
/o/m/e/omeeeru/default66.asp, line 110

Else
^**

Kod: http://www.aspkoll.se/code/Index.asp?id=611
Artikel: http://www.aspkoll.se/artikel/52-getrows-paging-naesta--foeregaaende/

Du har en end if för mycket

Medlem sedan juni 20019 519 inlägg
#3
...Else
    Response.Write("Inga medlemmar hittade :(")
End If

Vill du nog flytta upp på din if fråga

If isArray(arrMembers) Then
....
End If

Ersätt den med din else + end if fråga.

Medlem sedan jan. 2007217 inlägg
#4
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Untitled Document</title>
</head>

<%
////// KONTROLLERA SIDAN (Värden) //////

Dim intStart, intOffset

  intStart = Request.QueryString("s")

  intOffset = Request.QueryString("o")

  If Not IsNumeric(intStart) or Len(intStart) = 0 Then

    intStart = 0

  Else

    intStart = CInt(intStart)

  End If

  If Not IsNumeric(intOffset) or Len(intOffset) = 0 Then

    intOffset = 1

  Else

    intOffset = Cint(iOffset)

  End If
  
////// HÄMTA ALLA POSTER //////

Set Connect = Server.CreateObject("ADODB.Connection") 

    Connect.Open = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source="& Server.MapPath("_db/lander.mdb")
    
Set RecSet = Connect.Execute("Select * from Countries where Land") 

If RecSet.EOF Then

    arrMembers = ""

Else

    arrMembers = RecSet.GetRows()

End If

RecSet.Close : Set RecSet = Nothing

Connect.Close : Set Connect = Nothing

////// PAGING KOD //////

If isArray(arrMembers) Then

    ////// ANTAL POSTER //////
    
    intRows = Ubound(arrMembers,2)

	intCols = Ubound(arrMembers,1)
    
    ////// LOPPA UT ALLT //////
    
    If iRows > (intOffset + intStart) Then

        intStop = intOffset + intStart - 1

    Else

        intStop = intRows

    End If

    For i = intStart to intStop

        Response.Write(arrMembers(0,i) & "<br />")

    Next
	
	Else

    Response.Write("Inga medlemmar hittade :(")

End If

////// SKRIV UT PAGING //////

If intStart > 0 then

    Response.Write ("<a href=""Sida.asp?s=" & intStart-intOffset & "&o=" & intOffset & """>Föregående " & intOffset & "</a>")

End If

If intStop < intRows then

    Response.Write " <a href=""Sida.asp?s=" & intStart+intOffset & "&o=" & intOffset & """>Nästa " & intOffset & "</a>"

End If

////// SLUT PÅ PAGING KOD //////

%>
<body>
</body>
</html>

Använder denna kod nu. Det ser ut som att det funkar fint.
Men inga paging skrivs ut. Får inte fram Nästa / Föregående länkarna. Ländernas id skrivs ut istället.

Medlem sedan juni 20019 519 inlägg
#5

Ja?

...    For i = intStart to intStop

        Response.Write(arrMembers(0,i) & "<br />")

    Next

ta ju ut den första position du har i din array, eftersom du skriver med * i din select fråga så är det omöjligt att säga vad "0" är men det kan ju stämma att du skriver ut landets ID skrivs ut.

intStart verkar ju vara 0 och intStop är inte mindre än intRows därför ser du inte några länkar.

Medlem sedan okt. 20041 556 inlägg
#6

Asterixen är inge bra att använda. Använd dina kolumnnamn istället.

SELECT id,landnamn FROM Countries WHERE osv..
Medlem sedan jan. 2007217 inlägg
#7

voigtann1 skrev:

intStart verkar ju vara 0 och intStop är inte mindre än intRows därför ser du inte några länkar.

Förstod inte riktigt vad du menade :p

Medlem sedan juni 20019 519 inlägg
#8

Skriv ut dina variabler och berätta vad det är, eftersom dina if-statements aldrig inträffar så är det ju något fel på dina variabler om du nu vet att intRows är större än antal poster ifrån ditt Recordset.

Medlem sedan jan. 2007217 inlägg
#9

Hmm, då är det väll på artikeln som kommer från aspkoll.se
Jag har bara klistrat in koderna från där.

Medlem sedan juni 20019 519 inlägg
#10

Spelar ju ingen som hellst roll
intStart bör vara 0 i koden, men vad blir dina andra variabler, det är ju din databas som styr det värdet:

    If iRows > (intOffset + intStart) Then
        intStop = intOffset + intStart - 1
    Else
        intStop = intRows
    End If

sätts ju kodernaVad är de variablerna, Om inte if frågan:

If intStop < intRows then

heller träffas så kommer du inte se den länken heller.

Medlem sedan jan. 2007217 inlägg
#11

Kommit fram till denna:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Untitled Document</title>
</head>

<%
////// KONTROLLERA SIDAN (Värden) //////

Dim intStart, intOffset

  intStart = Request.QueryString("s")

  intOffset = Request.QueryString("o")

  If Not IsNumeric(intStart) or Len(intStart) = 0 Then

    intStart = 0

  Else

    intStart = CInt(intStart)

  End If

  If Not IsNumeric(intOffset) or Len(intOffset) = 0 Then

    intOffset = 1

  Else

    intOffset = Cint(iOffset)

  End If
  
////// HÄMTA ALLA POSTER //////

Set Connect = Server.CreateObject("ADODB.Connection") 

    Connect.Open = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source="& Server.MapPath("_db/lander.mdb")
    
Set RecSet = Connect.Execute("Select * from Countries where Land") 

If RecSet.EOF Then

    arrMembers = ""

Else

    arrMembers = RecSet.GetRows()

End If

RecSet.Close : Set RecSet = Nothing

Connect.Close : Set Connect = Nothing

////// PAGING KOD //////

If isArray(arrMembers) Then

    ////// ANTAL POSTER //////
    
    intRows = Ubound(arrMembers,2)

	intCols = Ubound(arrMembers,1)
    
    ////// LOPPA UT ALLT //////
    
    If iRows > (intOffset + intStart) Then

        intStop = intOffset + intStart - 1

    Else

        intStop = intRows

    End If

		For i = intStart to intStop

        Response.Write(arrMembers(1,i) & "<br />")

    Next
	
	Else

    Response.Write("Inga medlemmar hittade :(")

End If

////// SKRIV UT PAGING //////

If intStart > 0 then

    Response.Write ("<a href=""?s=" & intStart-intOffset & "&o=" & intOffset & """>Föregående " & intOffset & "</a>")

End If

If intStop < intRows then

    Response.Write " <a href=""?s=" & intStart+intOffset & "&o=" & intOffset & """>Nästa " & intOffset & "</a>"

End If

////// SLUT PÅ PAGING KOD //////

%>
<body>
</body>
</html>

Men inga paging fortfarande. Jag vill egentligen använda denna till bild galleri.
Så när det visar en bild så ska man kunna gå till nästa eller föregående.

Vet ej vad för fel jag gör.

Medlem sedan juni 20019 519 inlägg
#12

1. byt ut

Response.Write(arrMembers(1,i) & "<br />")

till det du vill presentera
2. kommentarer skrivs med ' inte som du gör med ///...
3. Om inte If frågorna:

If intStart > 0 then

och

If intStop < intRows then

träffas så kommer du inte se några paging möjligheter, därför igen ber jag dig kolla vad intStop, intRows och intStart är för värde för just nu är intStart inte större än 0, intStop är inte mindre än intRows, för om det hade varit det så hade du också sett texterna.

If intStart > 0 then

    Response.Write ("<a href=""?s=" & intStart-intOffset & "&o=" & intOffset & """>Föregående " & intOffset & "</a>")

End If

If intStop < intRows then

    Response.Write " <a href=""?s=" & intStart+intOffset & "&o=" & intOffset & """>Nästa " & intOffset & "</a>"

End If

kan du ju skriva om så att den visar texter men inga länkar om det inte inträffar:

If intStart > 0 then

    Response.Write ("<a href=""?s=" & intStart-intOffset & "&o=" & intOffset & """>Föregående " & intOffset & "</a>")
Else
   Response.Write "Föregående"
End If

If intStop < intRows then

    Response.Write " <a href=""?s=" & intStart+intOffset & "&o=" & intOffset & """>Nästa " & intOffset & "</a>"
Else
   Response.Write "Nästa"
End If
Medlem sedan jan. 2007217 inlägg
#13

Jag hittade något annat script på denna sida och den funkar perfekt. Jag har lagt till kategori till det. När man väljer kategori och ett bild. Så kan man inte fortsätta se andra bilder. Det har med ID:et och göra och vet ej hur jag ska lösa det.

Koden som visar kategori bilder:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
<title></title>
<meta name="keywords" content="" />
<meta name="description" content="" />
<link href="style.css" rel="stylesheet" type="text/css" media="screen" />
</head>
<body>
<%
	Set ObjConn = Server.CreateObject("ADODB.Connection") 
	ObjConn.Open = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source="& Server.MapPath("databas.mdb")
%>
<div id="wrapper">
	<div id="logo">
		<h1><a href="#">  </a></h1>
		<p><em> Nuvarande äventyr är i</em></p>
	</div>
	<hr />
	<!-- end #logo -->
	<div id="header">
		<div id="menu">
			<ul>
				<li><a href="#" class="first">Hem</a></li>
				<li><a href="#">Blogg</a></li>
				<li class="current_page_item"><a href="#">Galleri</a></li>
				<li><a href="#">Gästbok</a></li>
				<li><a href="#">Kontakta</a></li>
			</ul>
		</div>
		<!-- end #menu -->
        		<div id="search">
			<form method="get" action="">
				<fieldset>
                	<div id="search-tema">
               			Välj tema: Blå - Röd - Grön - Grå
                    </div>
				</fieldset>
			</form>
		</div>
		<!-- end #search -->

        </div>
	<!-- end #header -->
	<!-- end #header-wrapper -->
	<div id="page">
	<div id="page-bgtop">
		<div id="content">
				<h2 class="title2">Galleri » Senaste uppladade bilder</h2>
                
				<div class="entry">
					<p>
						<div id="Images">
                    	<%
							Set ObjRS = ObjConn.Execute("Select * from tblTable where photoCategoryId=" & request.querystring("categoryId") & " order by photoUploaded DESC")
							
							If ObjRS.EOF Then
								Response.Write "<div>Finns inga bilder!</div>"
							Else
								Do until ObjRS.Eof
									Response.Write "<div class=""Thumb""><a href=""galleri_pic.asp?ID="& ObjRS("ID") &"""><img src=""../"& ObjRS("fldName") &""" style=""width:130px;height:97px;"" alt="""" class=""image_border"" /></a></div>"& vbcrlf
								
								ObjRS.Movenext
								Loop
	
								ObjRS.Close : Set ObjRS = Nothing
							End If
						%> 
						</div>                                             
                    </p>
			</div>
            
		</div>
		<!-- end #content -->
		<div id="sidebar">
			<ul>
				<li>
					<h2>Kategori </h2>
					<ul>
                    	<%
							Set ObjRS = ObjConn.Execute("Select * from tblCategories where categoryId order by Categoryadded DESC")
							
							If ObjRS.EOF Then
								Response.Write "<li"">Finns inga kategori!</li>"
							Else
								Do until ObjRS.Eof
									Response.Write "<li><a class=""galleri_link"" href=""galleri_category.asp?categoryId="& ObjRS("categoryId") &""">"& ObjRS("categoryName") &"</a>"
									
								IF ObjRS("Categorynew")="1" then
									Response.Write ("<span class=""sidebar_text"">NY!</span></li>")& vbcrlf
								Else
									Response.Write "</li>"& vbcrlf
								End if
								
								ObjRS.Movenext
								Loop
	
								ObjRS.Close : Set ObjRS = Nothing
							End If
						%>
					</ul>
				</li>
			</ul>
		</div>
		<!-- end #sidebar -->
		<div style="clear: both;">&nbsp;</div>
	</div>
	</div>
	<!-- end #page -->
	<div id="footer-bgcontent">
	<div id="footer">
		<p>Copyright &copy 2010  All rights reserved.</p>
	</div>
	</div>
	<!-- end #footer -->
</div>
</body>
</html>

visar bilden från kategorin:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
<title></title>
<meta name="keywords" content="" />
<meta name="description" content="" />
<link href="style.css" rel="stylesheet" type="text/css" media="screen" />
</head>
<body>
<!--#include file="../functions.asp"-->
<%
	Set ObjConn = Server.CreateObject("ADODB.Connection") 
	ObjConn.Open = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source="& Server.MapPath("databas.mdb")
%>
<div id="wrapper">
	<div id="logo">
		<h1><a href="#">  </a></h1>
		<p><em> Nuvarande äventyr är i </em></p>
	</div>
	<hr />
	<!-- end #logo -->
	<div id="header">
		<div id="menu">
			<ul>
				<li><a href="#" class="first">Hem</a></li>
				<li><a href="#">Blogg</a></li>
				<li class="current_page_item"><a href="#">Galleri</a></li>
				<li><a href="#">Gästbok</a></li>
				<li><a href="#">Kontakta</a></li>
			</ul>
		</div>
		<!-- end #menu -->
        		<div id="search">
			<form method="get" action="">
				<fieldset>
                	<div id="search-tema">
               			Välj tema: Blå - Röd - Grön - Grå
                    </div>
				</fieldset>
			</form>
		</div>
		<!-- end #search -->

        </div>
	<!-- end #header -->
	<!-- end #header-wrapper -->
	<div id="page">
	<div id="page-bgtop">
		<div id="content">
				<h2 class="title2">Galleri » Senaste uppladade bilder</h2>
                
				<div class="entry">
					<p>
						<div id="Images">
<%
	Dim ObjConn, ObjRS, arrObjRS, intPage, intPostsPerPage, intFirstPost, intTotalPosts
	Dim intPages, intLastPost, strNext, i, strName, intNavStart, intNavEnd, n

'//---------------------------------------------------------------------------------------------------------------------------------------------------------------
'// Databashantering
		Set ObjPic = ObjConn.Execute("Select * from tblTable where ID=" & request.querystring("ID") & "")
		Set ObjRS = ObjConn.Execute("Select * from tblTable where ID=" & request.querystring("ID") & " and photoCategoryId=" & ObjPic("photoCategoryId") & "")
		If NOT ObjRS.EOF Then arrObjRS = ObjRS.GetRows()
	ObjRS.Close : Set ObjRS = Nothing

'//---------------------------------------------------------------------------------------------------------------------------------------------------------------
'// Posthantering

If IsArray(arrObjRS) Then

	'// Poster per sida
	intPostsPerPage = 1

	'// Navigeringshantering
	If Len(trim(Request.Querystring("n"))) > 0 Then intPage = cInt(trim(Request.Querystring("n"))) Else intPage = 1
	intFirstPost = (intPage - 1) * intPostsPerPage
	intTotalPosts = UBound(arrObjRS , 2)
	intPages = ((intTotalPosts)\intPostsPerPage)+1

	If intFirstPost + (intPostsPerPage - 1) >= UBound(arrObjRS,2) Then
		intLastPost = UBound(arrObjRS, 2) 
	Else
		intLastPost = intFirstPost + (intPostsPerPage - 1)
		strNext = True
	End If

	'// Skriv ut posterna
	For i = intFirstPost To intLastPost
		strName = arrObjRS(1,i)
		Response.Write "	<img src=""../"& strName &""" style=""border:1px black solid;""><br>"& vbcrlf
	Next
	
	'// Navigering, v&#65533;lj sj&#65533;lv knappar eller text
	Response.Write "<br />"
	Call textNavigate(intPage, intTotalPosts, intPostsPerPage, intPages)

	Response.Write "<br /><br /><a name=""fb_share"" type=""button"" share_url=""galleri_pic.asp?n="& intPage &""">Dela Med på Facebook</a> <script src=""http://static.ak.fbcdn.net/connect.php/js/FB.Share"" type=""text/javascript""></script>"
	Response.Write "<p></p>"	
Response.Write "<div class=""slide_boxcomment"">"& vbcrlf
	Response.Write "<div class=""slide_newcomment""><span class=""header_maroon"">SKRIV KOMMENTAR</span></div>"& vbcrlf
       Response.Write "<div class=""slide_comment"">"& vbcrlf
			Response.Write "<textarea></textarea> <p></p>"& vbcrlf
			Response.Write "<input type=""submit"" name=""bSend"" value=""SKICKA"" class=""button""/>"& vbcrlf
       Response.Write "</div>"& vbcrlf
	Response.Write "</div>"& vbcrlf
'// Fanns inga poster
Else
	Response.Write "Hittade ingen bild med denna ID!"

End If

'//---------------------------------------------------------------------------------------------------------------------------------------------------------------
%>
						</div>                                             
                    </p>
			</div>
            
		</div>
		<!-- end #content -->
		<div id="sidebar">
			<ul>
				<li>
					<h2>Kategori </h2>
					<ul>
                    	<%
							Set ObjRS = ObjConn.Execute("Select * from tblCategories where categoryId order by Categoryadded DESC")
							
							If ObjRS.EOF Then
								Response.Write "<li"">Finns inga kategori!</li>"
							Else
								Do until ObjRS.Eof
									Response.Write "<li><a class=""galleri_link"" href=""galleri_category.asp?categoryId="& ObjRS("categoryId") &""">"& ObjRS("categoryName") &"</a>"
									
								IF ObjRS("Categorynew")="1" then
									Response.Write ("<span class=""sidebar_text"">NY!</span></li>")& vbcrlf
								Else
									Response.Write "</li>"& vbcrlf
								End if
								
								ObjRS.Movenext
								Loop
	
								ObjRS.Close : Set ObjRS = Nothing
							End If
						%>
					</ul>
				</li>
			</ul>
		</div>
		<!-- end #sidebar -->
		<div style="clear: both;">&nbsp;</div>
	</div>
	</div>
	<!-- end #page -->
	<div id="footer-bgcontent">
	<div id="footer">
		<p>Copyright &copy 2010  All rights reserved.</p>
	</div>
	</div>
	<!-- end #footer -->
</div>
</body>
</html>
Medlem sedan jan. 2007217 inlägg
#14

Någon? ;p

265 ms totalt · 4 externa anrop · v20260731065814-full.a51de22e
124 ms — deklarationer (db)
0 ms — hämta statistik (cache)
139 ms — hämta tråd, inlägg och bilagor (db)
124 ms — ändringar (db)