webForumDet fria alternativet

Köra funktioner och UPDATE

ASP

46 svar · 1 296 visningar · startad av Sanji

Medlem sedan juli 2009355 inlägg
Frågan#1

Hej! Jag fick idag en uppgift att göra om en sida för att hantera en meny i klassisk asp, så att man kan flytta på menyalternativen upp och ner i listan. Jag började med att lägga till en ny kolumn i databasen som jag namngav till position, där en siffra representerar menyalternativens ordning i listan.

Nu återstår koden för att få detta att fungera som jag vill... Så här ser den ut hittills:

<%@LANGUAGE="VBSCRIPT" CODEPAGE="1252"%>
<!--#include file="checkuser.asp"-->
<!--#include file="opcon.asp"-->
<%
	Response.buffer=true

sub menuitemup(pos)
Connect
movingItemID = "SELECT ID FROM kategorier WHERE position = pos"
adaptingItemID = "SELECT ID FROM kategorier WHERE position = (pos-1)"

Connect.Execute "UPDATE kategorier SET position=(pos-1) WHERE ID = movingItemID"
Connect.Execute "UPDATE kategorier SET position=pos WHERE ID = adaptingItemID"
end sub

sub menuitemdown(pos)
movingItemID = "SELECT ID FROM kategorier WHERE position = pos"
adaptingItemID = "SELECT ID FROM kategorier WHERE position = (pos+1)"

Connect.Execute "UPDATE kategorier SET position=(pos+1) WHERE ID = movingItemID"
Connect.Execute "UPDATE kategorier SET position=pos WHERE ID = adaptingItemID"
end sub

IF Request.QueryString(pd) != ''
THEN
call menuitemdown(Request.QueryString(pd)
ELSE IF Request.QueryString(pu) != '' 
THEN
call menuitemup(Request.QueryString(pu)
END IF

%>

<html>
<head>
<title>Fellingsbro Stålteknik AB</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<link href="stalteknik.css" rel="stylesheet" type="text/css">
<script language="JavaScript" type="text/JavaScript">
<!--
function MM_goToURL() { //v3.0
  var i, args=MM_goToURL.arguments; document.MM_returnValue = false;
  for (i=0; i<(args.length-1); i+=2) eval(args[i]+".location='"+args[i+1]+"'");
}
//-->
</script>
</head>

<body text="#000000" link="#000000" vlink="#000000" alink="#000000" leftmargin="10" topmargin="10" marginwidth="10" marginheight="10">
<table width="600" border="0" align="center" cellpadding="5" cellspacing="0" class="OutlineBlack">
  <tr> 
    <td height="85" align="left" valign="top" background="../stpics/topbar.gif"> 
      <!--#include file="head.asp"-->
    </td>
  </tr>
  <tr> 
    <td align="left" valign="top" bgcolor="#FFFFFF" class="StdText"> <br> <table width="100%" border="0" cellpadding="5" cellspacing="0">
        <tr> 
          <td align="left" valign="middle" background="../stpics/bkg_square2.gif" class="StdText"><font color="#FFFFFF"><strong>Aktiviteter</strong></font></td>
        </tr>
        <tr> 
          <td align="left" valign="top" class="StdText"><br> <input name="bNew" type="button" Class="Button2" id="bNew" onClick="MM_goToURL('self','catadd.asp');return document.MM_returnValue" value="Ny Kategori"> 
            <input name="bClose" type="button" class="Button2" id="bClose" onClick="MM_goToURL('self','main.asp');return document.MM_returnValue" value="St&auml;ng"></td>
        </tr>
      </table>
      <br> <table width="100%" border="0" cellpadding="5" cellspacing="0">
        <tr> 
          <td align="left" valign="middle" background="../stpics/bkg_square2.gif" class="StdText"><font color="#FFFFFF"><strong>Existerande 
            kategorier </strong></font></td>
        </tr>
      </table>
      <table width="100%" border="0" cellspacing="0" cellpadding="5">
        <% RecSet.Open "SELECT * From Kategorier ORDER BY position ASC", Connect
		  Do Until RecSet.EOF %>
        <tr align="left" valign="top"> 
          <td valign="middle" class="SidText"> <%
			  	Response.Write("<b>" & RecSet("KategoriNamn") & " <a href='page.asp?pu=" & RecSet("position") & "' target='_self'>upp</a><a href='page.asp?pd=" & RecSet("position") & "' target='_self'>ner</a></b>")
				IF RecSet("Osynlig") = True Then Response.Write(" (Osynlig)")
				Response.Write("<br>" & RecSet("KategoriBeskrivning"))
			  %> </td>
          <td width="200" align="right" valign="middle"> <input name="edit" type="submit" class="Button2" onClick="MM_goToURL('self','catedit.asp?id=<%= RecSet("KategoriID") %>');return document.MM_returnValue" value="Redigera"> 
            <input name="delete" type="submit" class="Button2" onClick="MM_goToURL('self','catedit.asp?id=<%= RecSet("KategoriID") %>&amp;del=1');return document.MM_returnValue" value="Ta bort"> 
          </td>
        </tr>
        <% RecSet.MoveNext
		  	 Loop 
		  	 RecSet.Close %>
      </table>
      <font color="#000000" size="1" face="Verdana, Arial, Helvetica, sans-serif"><br>
      </font> </td>
  </tr>
  <tr> 
    <td height="45" align="right" valign="bottom" background="../stpics/bottombar.gif"> 
      <!--#include file="foot.asp"--> </td>
  </tr>
</table>
</body>
</html>
<!--#include file="ccon.asp"-->

jag har skapat funktionerna "menuitemup" och "menuitemdown", jag har också skrivit in två länkar som skickar med det aktuella menyvalets position så att denna kan ändras. Jag har även skrivit in en IF-sats för att kolla om menyalternativet ska flyttas upp eller ner i listan, och därefter köra rätt funktion.

Tyvärr har jag aldrig riktigt gillat klassisk asp, och har därför inte haft viljan att lära mig det, men nu är man ju så illa tvungen ^^

Vad mer behöver jag lägga till för att det här ska kunna fungera som jag beskrivit?

Mvh. Sanji

Medlem sedan juli 2009355 inlägg
#2

Nu ska menyn även vara dynamisk, med underrubriker som ska komma fram antingen genom att klicka på ett +, eller när man håller muspekaren över ett menyalternativ(Jag har inte bestämt mig än)

Nu är det så att själva asp-filen som skriver ut menyn ser ut så här:

<table width="120" border="0" align="left" cellpadding="3" cellspacing="2" class="menu">
  <tr> 
    <td align="left" valign="middle" class="MenuItem" style="cursor: hand;" onmouseover="this.style.backgroundColor='#FFFFFF';" onmouseout="this.style.backgroundColor='';" onClick="document.location='main.asp'"><strong><a href="main.asp" target="_self"> 
      Startsidan</a></strong></td>
  </tr>
  <% 'IF nTYP = 0 And Session("VisaPris") <> False Then %>
  <% IF Session("VisaPris") <> False Then %>
  <tr> 
    <td align="left" valign="middle" class="MenuItem" style="cursor: hand;" onmouseover="this.style.backgroundColor='#FFFFFF';" onmouseout="this.style.backgroundColor='';" onClick="document.location='forfragan.asp'"><strong><%= "<a href='forfragan.asp' target='_self'><font color='#999999'>e</font>Offert</a><br>" %></strong></td>
  </tr>
  <% 
  	End IF 

	Sel = "Select * from Sidor Where Osynlig = False And Year(Datum) < 2100"
	RecSet.Open Sel, Connect
	if not recset.eof then
		RecSet.Movefirst  
		Do Until RecSet.Eof
		IF RecSet("StartSida") = False And UCASE(RecSet("Namn")) <> "GSTEXT" Then
		
  %>
  <tr> 
    <td align="left" valign="middle"  class="MenuItem" style="cursor: hand;" onmouseover="this.style.backgroundColor='#FFFFFF';" onmouseout="this.style.backgroundColor='';" onClick="document.location='page.asp?s=<%= RecSet("ID") %>';"><strong>
      <% 	
			   
				Response.Write("<a href='page.asp?s=" & RecSet("ID") & "' target='_self'>" & RecSet("Namn") & "</a><br>")
			   
	  %>
      </strong></td>

  </tr>
  <%		
  			End IF
			RecSet.MoveNext
		Loop
	end if
	RecSet.Close
%>
  <tr> 
    <td align="left" valign="middle"  class="MenuItem" style="cursor: hand;" onmouseover="this.style.backgroundColor='#FFFFFF';" onmouseout="this.style.backgroundColor='';" onClick="document.location='stadmin/logout.asp';"><strong><a href="stadmin/logout.asp" target="_self" title="Logga alltid ut så att obehöriga inte kan visa sidan.">Logga 
      ut</a> </strong></td>
  </tr>
  <tr> 
    <td align="left" valign="middle"> <strong><br>
      Kategorier</strong></td>
  </tr>
  <%
  response.write("Grenställsoffert: " & Session("GrenstallOffert"))
  ' Kolla om användare har rättighet att se offert i menyn
  	IF Session("GrenstallOffert") = TRUE THEN
	   %>
	  <tr> 
		<td align="left" valign="middle" class="MenuItem"  onmouseover="this.style.backgroundColor='#FFFFFF';" onmouseout="this.style.backgroundColor='';" style="cursor: hand;" onClick="document.location='grenstall.asp'">&middot; <a href="grenstall.asp" target="_self">Grenst&auml;ll (offert)</a></td>
	  </tr>
	  <%
    END IF
  
  
	IF nTYP = 0 or nTYP = 2 Then	
		Sel = "Select * from Kategorier Where Osynlig = False Order By KategoriNamn"
		RecSet.Open Sel, Connect
		if not RecSet.Eof then
			RecSet.Movefirst 
			Do Until RecSet.Eof
  %>
  <tr>
    <td align="left" valign="middle" class="MenuItem" onmouseover="this.style.backgroundColor='#FFFFFF';" onmouseout="this.style.backgroundColor='';" onClick="document.location='products.asp?cat=<%=  RecSet("KategoriID") %>'" style="cursor: hand;">
      <% 

				Response.Write("&middot; <a href='products.asp?cat=" & RecSet("KategoriID") & "' target='_self'>" & RecSet("KategoriNamn") & "</a>") & vbcrlf
%>
    </td>
  </tr>
<%

				RecSet.MoveNext
			Loop
		end if
		RecSet.Close
	End IF

	IF Session("VisaPris") = False Then
%>
	<tr>
		
    <td><font size="1"><br>
      Hej <%= Session("AnvNamn") %>, du &auml;r inloggad som g&auml;st och inga priser kommer att 
      visas p&aring; sidan.</font></td>
	</tr>
<% End IF %>
</table>

Koden ovan är den fungerande, och nu vill jag ändra denna så att den kollar efter Underrubriker också, och om dessa finns så ska dom finnas med i menyn, fast gömda tills användaren vill se dessa.

här har jag ändrat sql-satsen till en join, och så var tanken att kolla om det finns en underrubrik med ett parentID som är samma som KategoriID på de vanliga rubrikerna, om inte, så ska allt skrivas ut som det gör i koden ovan, annars läggs ett "+" till istället för en prick före menyalternativet, och sedan ska man kunna klicka fram underrubrikerna.

Sel = "Select Kategorier.KategoriID, Kategorier.KategoriNamn, Kategorier.KategoriBeskrivning, Kategorier.Osynlig, Kategorier.position  from Kategorier LEFT JOIN Underkategorier ON Kategorier.KategoriID = Underkategorier.parentID Where Kategorier.Osynlig = False Order By Kategorier.position ASC"
		RecSet.Open Sel, Connect
		if not RecSet.Eof then
			RecSet.Movefirst
			Do Until RecSet.Eof
  IF RecSet("Underkategorier.parentID") == null
  
  %>
  <tr>
    <td align="left" valign="middle" class="MenuItem" onmouseover="this.style.backgroundColor='#FFFFFF';" onmouseout="this.style.backgroundColor='';" onClick="document.location='products.asp?cat=<%=  RecSet("KategoriID") %>'" style="cursor: hand;">
      <% 
	  

				Response.Write("&middot; <a href='products.asp?cat=" & RecSet("KategoriID") & "' target='_self'>" & RecSet("KategoriNamn") & "</a>") & vbcrlf
%>
    </td>
  </tr>
<%
ELSE IF RecSet("Underkategorier.parentID") == RecSet("Kategorier.KategoriID")
%>
  <tr>
    <td align="left" valign="middle" class="MenuItem" onmouseover="this.style.backgroundColor='#FFFFFF';" onmouseout="this.style.backgroundColor='';" onClick="document.location='products.asp?cat=<%=  RecSet("KategoriID") %>'" style="cursor: hand;">
      <% 
	  

				Response.Write("+ <a href='products.asp?cat=" & RecSet("KategoriID") & "' target='_self'>" & RecSet("Kategorier.KategoriNamn") & "</a>") & vbcrlf
%>
    </td>
  </tr>
<%
End IF

Koden jag har skrivit dit här ovan fungerar inte, och jag får inte ett enda felmeddelande när jag kodar i klassisk asp, jag måste gissa mig fram hela tiden. just nu får jag bara fram att sidan inte kan visas. Kan det vara sql-satsen, eller är det if-satserna som är fel?

Kan jag kanske hitta felmeddelanden om jag öppnar dessa filer i VS2010? Jag ska ta och testa det nu, återkommer straxt

Mvh Sanji

Medlem sedan juni 200032 967 inlägg
#3

just nu får jag bara fram att sidan inte kan visas

Har du friendly error messages / egna http-felmeddelanden inställda i IE? I så fall - stäng av - eller ännu hellre: använd en annan webbläsare.

mvh

Medlem sedan juli 2009355 inlägg
#4

iofs, jag tar och hoppar över till firefox en stund ^^

*Edit fy fasen vad nice, nu ser jag felmeddelanden!

*Använder denna post för att skriva upp lite fel jag fixar:

1. Jag hade använt operatorer från c#, så jag ändrade == till = på två ställen.
2. Jag hade glömt "THEN" på IF-satserna, lade till dessa.
3. Jag hade skrivit ELSE IF istället för ELSEIF, nu åtgärdat*

Medlem sedan juni 200032 967 inlägg
#5

Ja, det är lite lättare att felsöka om man åtminstone får se vad som är fel. :)

Medlem sedan juli 2009355 inlägg
#6

nu ska vi se, jag får felmeddelande om att det finns 'Loop' men ingen 'Do'...

*Microsoft VBScript compilation error '800a040e'

'loop' without 'do'

/menu.asp, line 98

Loop
^*

Testade att flytta ner Loop till under nästa "end if", men då fick jag ett annat fel, att det ska finnas en "END" i ccon-filen (close connection), och detta fel har jag aldrig fått förut, och jag har heller inte pillat på den filen så det kan inte vara felet... flyttade tillbaka Loop igen

bifogar hur hela filen ser ut efter att jag ändrat den:

<table width="120" border="0" align="left" cellpadding="3" cellspacing="2" class="menu">
  <tr> 
    <td align="left" valign="middle" class="MenuItem" style="cursor: hand;" onmouseover="this.style.backgroundColor='#FFFFFF';" onmouseout="this.style.backgroundColor='';" onClick="document.location='main.asp'"><strong><a href="main.asp" target="_self"> 
      Startsidan</a></strong></td>
  </tr>
  <% 'IF nTYP = 0 And Session("VisaPris") <> False Then %>
  <% IF Session("VisaPris") <> False Then %>
  <tr> 
    <td align="left" valign="middle" class="MenuItem" style="cursor: hand;" onmouseover="this.style.backgroundColor='#FFFFFF';" onmouseout="this.style.backgroundColor='';" onClick="document.location='forfragan.asp'"><strong><%= "<a href='forfragan.asp' target='_self'><font color='#999999'>e</font>Offert</a><br>" %></strong></td>
  </tr>
  <% 
  	End IF 

	Sel = "Select * from Sidor Where Osynlig = False And Year(Datum) < 2100"
	RecSet.Open Sel, Connect
	if not recset.eof then
		RecSet.Movefirst  
		Do Until RecSet.Eof
		IF RecSet("StartSida") = False And UCASE(RecSet("Namn")) <> "GSTEXT" Then
		
  %>
  <tr> 
    <td align="left" valign="middle"  class="MenuItem" style="cursor: hand;" onmouseover="this.style.backgroundColor='#FFFFFF';" onmouseout="this.style.backgroundColor='';" onClick="document.location='page.asp?s=<%= RecSet("ID") %>';"><strong>
      <% 	
			   
				Response.Write("<a href='page.asp?s=" & RecSet("ID") & "' target='_self'>" & RecSet("Namn") & "</a><br>")
			   
	  %>
      </strong></td>

  </tr>
  <%		
  			End IF
			RecSet.MoveNext
		Loop
	end if
	RecSet.Close
%>
  <tr> 
    <td align="left" valign="middle"  class="MenuItem" style="cursor: hand;" onmouseover="this.style.backgroundColor='#FFFFFF';" onmouseout="this.style.backgroundColor='';" onClick="document.location='stadmin/logout.asp';"><strong><a href="stadmin/logout.asp" target="_self" title="Logga alltid ut så att obehöriga inte kan visa sidan.">Logga 
      ut</a> </strong></td>
  </tr>
  <tr> 
    <td align="left" valign="middle"> <strong><br>
      Kategorier</strong></td>
  </tr>
  <%
  response.write("Grenställsoffert: " & Session("GrenstallOffert"))
  ' Kolla om användare har rättighet att se offert i menyn
  	IF Session("GrenstallOffert") = TRUE THEN
	   %>
	  <tr> 
		<td align="left" valign="middle" class="MenuItem"  onmouseover="this.style.backgroundColor='#FFFFFF';" onmouseout="this.style.backgroundColor='';" style="cursor: hand;" onClick="document.location='grenstall.asp'">&middot; <a href="grenstall.asp" target="_self">Grenst&auml;ll (offert)</a></td>
	  </tr>
	  <%
    END IF
  
  
	IF nTYP = 0 or nTYP = 2 Then	
		Sel = "Select Kategorier.KategoriID, Kategorier.KategoriNamn, Kategorier.KategoriBeskrivning, Kategorier.Osynlig, Kategorier.position  from Kategorier LEFT JOIN Underkategorier ON Kategorier.KategoriID = Underkategorier.parentID Where Kategorier.Osynlig = False Order By Kategorier.position ASC"
		RecSet.Open Sel, Connect
		if not RecSet.Eof then
			RecSet.Movefirst
			Do Until RecSet.Eof
  IF RecSet("Underkategorier.parentID") = null THEN
  
  
  %>
  <tr>
    <td align="left" valign="middle" class="MenuItem" onmouseover="this.style.backgroundColor='#FFFFFF';" onmouseout="this.style.backgroundColor='';" onClick="document.location='products.asp?cat=<%=  RecSet("KategoriID") %>'" style="cursor: hand;">
      <% 
	  

				Response.Write("&middot; <a href='products.asp?cat=" & RecSet("KategoriID") & "' target='_self'>" & RecSet("KategoriNamn") & "</a>") & vbcrlf
%>
    </td>
  </tr>
<%

ELSE IF RecSet("Underkategorier.parentID") = RecSet("Kategorier.KategoriID") THEN

%>
  <tr>
    <td align="left" valign="middle" class="MenuItem" onmouseover="this.style.backgroundColor='#FFFFFF';" onmouseout="this.style.backgroundColor='';" onClick="document.location='products.asp?cat=<%=  RecSet("KategoriID") %>'" style="cursor: hand;">
      <% 
	  

				Response.Write("+ <a href='products.asp?cat=" & RecSet("KategoriID") & "' target='_self'>" & RecSet("Kategorier.KategoriNamn") & "</a>") & vbcrlf
%>
    </td>
  </tr>
<%

End IF
		RecSet.MoveNext
		Loop  
		end if
		RecSet.Close
		
	End IF    

	IF Session("VisaPris") = False Then
%>
	<tr>
		
    <td><font size="1"><br>
      Hej <%= Session("AnvNamn") %>, du &auml;r inloggad som g&auml;st och inga priser kommer att 
      visas p&aring; sidan.</font></td>
	</tr>
<% End IF %>
</table>
Medlem sedan juni 200032 967 inlägg
#7

Prova att ändra

ELSE IF RecSet("Underkategorier.parentID") = RecSet("Kategorier.KategoriID") THEN

till

ELSEIF RecSet("Underkategorier.parentID") = RecSet("Kategorier.KategoriID") THEN

Annars får du lägga till ett end if efter ditt end if - eftersom du faktiskt har två öppna if-satser.

Medlem sedan juni 20019 519 inlägg
#8

bifoga gärna koden du har uppdaterat, vilken rad är 98 annars?

Men du kan inte ha en du måste ha en loop som "valideras":

If Something Then
Do Until RS.EOF

End If
RS.MoveNext()
Loop

Är fel då Loopen startas bara om Something är sann, samma sak med If frågorna.Men om du flyttar End If efter Loop, eller om du har din Loop inne i din if-fråga så kommer den köras och avslutas på ett korrekt sätt.

Medlem sedan juli 2009355 inlägg
#9

Ändrade else if till elseif och flyttade tillbaka Loop

nice, nu är det felet fixat ^^ fast här kommer ett till:

Grenställsoffert: True error '80004005'

Unspecified error

/menu.asp, line 63

Rad 62: Sel = "Select Kategorier.KategoriID, Kategorier.KategoriNamn, Kategorier.KategoriBeskrivning, Kategorier.Osynlig, Kategorier.position from Kategorier LEFT JOIN Underkategorier ON Kategorier.KategoriID = Underkategorier.parentID Where Kategorier.Osynlig = False Order By Kategorier.position ASC"

Rad 63: RecSet.Open Sel, Connect

felet lär ju ligga i Sql-satsen

Tack för all hjälp hittills ni två! :)

Medlem sedan juli 2009355 inlägg
#10

jag kan inte hitta något fel i sql-satsen, men nu vet jag att felmeddelandet har någonting med databasen att göra, så det måste ju vara fel på den ändå.

Medlem sedan juni 200032 967 inlägg
#11

Prova att köra sql-frågan direkt i databasen.

Hur ser din databaskoppling ut?

I övrigt: i asp använder du inte = null för att kolla om något är null - använd funktionen isnull() istället.

mvh

Medlem sedan juli 2009355 inlägg
#12

jag har gjort om sql-strängen lite, om den fungerar att göra direkt mot databasen... men jag har tänkt lite fel, jag håller på och gör om den befintliga menyn till en dynamisk meny med underrubriker.

Min nuvarande idé är att loopa igenom alla menyrubriker som finns i databasen, och för varje menyalternativ så loopar den igenom underrubriker, och finns det någon med rätt id så läggs underrubriken också in i menyn. efter detta så ska den gå vidare till nästa menyalternativ och ta fram underrubrikerna till denna också. Slänger upp lite kod på det jag åstadkommit hittills:

Sel = "Select KategoriID, KategoriNamn, KategoriBeskrivning, Osynlig, position from Kategorier Where Osynlig = False Order By position ASC"' hämtar Kategorier
		
		RecSet.Open Sel, Connect
		if not RecSet.Eof then 'Nummer2
			RecSet.Movefirst
			Do Until RecSet.Eof
  
  Sel2 = "Select ID, parentID, namn, beskrivning from Underkategorier Where parentID =" & RecSet("KategoriID")
  RecSet2.Open Sel2, Connect
  if not RecSet2.Eof then
  	RecSet2.Movefirst
	IF isnull(RecSet2("parentID")) THEN
  
  %>
  <tr>
    <td align="left" valign="middle" class="MenuItem" onmouseover="this.style.backgroundColor='#FFFFFF';" onmouseout="this.style.backgroundColor='';" onClick="document.location='products.asp?cat=<%=  RecSet("KategoriID") %>'" style="cursor: hand;">
      <% 
	  

				Response.Write("&middot; <a href='products.asp?cat=" & RecSet("KategoriID") & "' target='_self'>" & RecSet("KategoriNamn") & "</a>") & vbcrlf
%>
    </td>
  </tr>
<%

ELSEIF RecSet2("parentID") = RecSet("KategoriID") THEN
Do Until RecSet2.Eof

%>
  <tr>
    <td align="left" valign="middle" class="MenuItem" onmouseover="this.style.backgroundColor='#FFFFFF';" onmouseout="this.style.backgroundColor='';" onClick="document.location='products.asp?cat=<%=  RecSet("KategoriID") %>'" style="cursor: hand;">
      <% 
	  

				Response.Write("+ <a href='products.asp?undercat=" & RecSet2("ID") & "' target='_self'>" & RecSet2("namn") & "</a>") & vbcrlf
%>
    </td>
  </tr>
  
<%
RecSet2.Movenext
Loop
End IF'Nummer3 
RecSet2.Close
		RecSet.MoveNext
		Loop
		end if'Nummer2
		RecSet.Close

går det att göra så här?

just nu säger den att "Loop" inte kan finnas utan en Do, med andra ord samma problem jag hade förut... titta på koden nu, jag tror att jag har lagt Loop på rätt plats, men man vet ju aldrig hehe ^^

Mvh Sanji

Medlem sedan juni 200032 967 inlägg
#13

Om du indenterar koden ordentligt så kommer du nog att se att det saknas ett end if någonstans (gissar jag).

mvh

Medlem sedan juli 2009355 inlägg
#14

mycket riktigt så fattades det en END IF... och nu är jag tillbaka på problemet när jag ska hämta värden från databasen, att det blir ett Unspecified error på line 63, där finns: "RecSet.Open Sel, Connect"

i connect-filen ser det ut så här:

<%

	SET Connect = Server.CreateObject("ADODB.Connection")
	IF Connect.State = 1 Then Connect.Close
	Connect.Open = "Provider= Microsoft.Jet.OLEDB.4.0;Data Source="& Server.MapPath(".") & "/stdata/staldata.mdb;"
	SET RecSet = Server.CreateObject("ADODB.recordset")
	SET RecSet2 = Server.CreateObject("ADODB.recordset")
	DIM sForetagsnamn

%>

det borde fungera att hämta värden eftersom den gamla sidan fungerar...

Medlem sedan juni 20019 519 inlägg
#15

kolla att du inte ha satt Connect till nothing i koden ovan.

Medlem sedan juli 2009355 inlägg
#16

Nu har jag löst det, det var sql-satsen! irriterande som fasen, Det var "Order by position ASC" som ställde till det, tog bort den och sorterar nu efter namn istället. Tack för hjälpen @nders och voigtann1!

Medlem sedan juli 2009355 inlägg
#17

jag förhastade mig lite när jag markerade som löst, för från första början var det admingränssnittet som jag ville ha hjälp med, och nu är det det jag ska fortsätta på ^^ Jag postar om det senare idag! Men tack åter igen till @nders och voigtann1 som har hjälpt mig massor under en tid nu :)

Medlem sedan juni 200032 967 inlägg
#18

Position är nog ett reserverat ord. Skriv order by [position] om du vill sortera på det fältet.

Mvh

Medlem sedan juli 2009355 inlägg
#19

ska genast testas! btw, här har jag en annan sida med två funktioner på. Dessa funktioner är till för att flytta menyalternativens positioner upp och ner, man ska helt enkelt kunna klicka på en knapp eller så, och då ska alternativet flytta ett steg ner eller upp i listan.

<%@LANGUAGE="VBSCRIPT" CODEPAGE="1252"%>
<!--#include file="checkuser.asp"-->
<!--#include file="opcon.asp"-->
<%
	Response.buffer=true

sub menuitemup(pos)
movingItemID = "SELECT ID FROM kategorier WHERE (position =" & str(pos) & ")" 
adaptingItemID = "SELECT ID FROM kategorier WHERE (position =" & str(pos+1) & ")"

Connect.Execute "UPDATE kategorier SET position=(pos-1) WHERE (ID =" & int(movingItemID) & ")"
Connect.Execute "UPDATE kategorier SET position=pos WHERE (ID =" & int(adaptingItemID) & ")"
end sub

sub menuitemdown(pos)
movingItemID = "SELECT ID FROM kategorier WHERE (position =" & str(pos) & ")"
adaptingItemID = "SELECT ID FROM kategorier WHERE (position =" & str(pos+1) & ")"

Connect.Execute "UPDATE kategorier SET position=(pos+1) WHERE (ID =" & int(movingItemID) & ")"
Connect.Execute "UPDATE kategorier SET position=pos WHERE (ID =" & int(adaptingItemID) & ")"
end sub

IF isnull(Request.QueryString("pd")) THEN
call menuitemdown(Request.QueryString("pd"))
ELSEIF isnull(Request.QueryString("pu")) THEN
call menuitemup(Request.QueryString("pu"))
END IF

%>

<html>
<head>
<title>Fellingsbro Stålteknik AB</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<link href="stalteknik.css" rel="stylesheet" type="text/css">
<script language="JavaScript" type="text/JavaScript">
<!--
function MM_goToURL() { //v3.0
  var i, args=MM_goToURL.arguments; document.MM_returnValue = false;
  for (i=0; i<(args.length-1); i+=2) eval(args[i]+".location='"+args[i+1]+"'");
}
//-->
</script>
</head>

<body text="#000000" link="#000000" vlink="#000000" alink="#000000" leftmargin="10" topmargin="10" marginwidth="10" marginheight="10">
<table width="600" border="0" align="center" cellpadding="5" cellspacing="0" class="OutlineBlack">
  <tr> 
    <td height="85" align="left" valign="top" background="../stpics/topbar.gif"> 
      <!--#include file="head.asp"-->
    </td>
  </tr>
  <tr> 
    <td align="left" valign="top" bgcolor="#FFFFFF" class="StdText"> <br> <table width="100%" border="0" cellpadding="5" cellspacing="0">
        <tr> 
          <td align="left" valign="middle" background="../stpics/bkg_square2.gif" class="StdText"><font color="#FFFFFF"><strong>Aktiviteter</strong></font></td>
        </tr>
        <tr> 
          <td align="left" valign="top" class="StdText"><br> <input name="bNew" type="button" Class="Button2" id="bNew" onClick="MM_goToURL('self','catadd.asp');return document.MM_returnValue" value="Ny Kategori"> 
            <input name="bClose" type="button" class="Button2" id="bClose" onClick="MM_goToURL('self','main.asp');return document.MM_returnValue" value="St&auml;ng"></td>
        </tr>
      </table>
      <br> <table width="100%" border="0" cellpadding="5" cellspacing="0">
        <tr> 
          <td align="left" valign="middle" background="../stpics/bkg_square2.gif" class="StdText"><font color="#FFFFFF"><strong>Existerande 
            kategorier </strong></font></td>
        </tr>
      </table>
      <table width="100%" border="0" cellspacing="0" cellpadding="5">
        <% RecSet.Open "SELECT * From Kategorier ORDER BY KategoriNamn", Connect
		  Do Until RecSet.EOF %>
        <tr align="left" valign="top"> 
          <td valign="middle" class="SidText"> <%
			  	Response.Write("<b>" & RecSet("KategoriNamn") & " <a href='page.asp?pu=" & RecSet("position") & "' target='_self'>UPP</a> <a href='page.asp?pd=" & RecSet("position") & "' target='_self'>NER</a></b>")
				IF RecSet("Osynlig") = True Then Response.Write(" (Osynlig)")
				Response.Write("<br>" & RecSet("KategoriBeskrivning"))
			  %> </td>
          <td width="200" align="right" valign="middle"> <input name="addunderkategori" type="button" Class="Button2" id="addunderkategori" onClick="MM_goToURL('self','cataddunder.asp?id=<%= RecSet("KategoriID") %>');return document.MM_returnValue" value="Lägg till Underkategori"><input name="edit" type="submit" class="Button2" onClick="MM_goToURL('self','catedit.asp?id=<%= RecSet("KategoriID") %>');return document.MM_returnValue" value="Redigera"> 
            <input name="delete" type="submit" class="Button2" onClick="MM_goToURL('self','catedit.asp?id=<%= RecSet("KategoriID") %>&amp;del=1');return document.MM_returnValue" value="Ta bort"> 
          </td>
        </tr>
        <% RecSet.MoveNext
		  	 Loop 
		  	 RecSet.Close %>
      </table>
      <font color="#000000" size="1" face="Verdana, Arial, Helvetica, sans-serif"><br>
      </font> </td>
  </tr>
  <tr> 
    <td height="45" align="right" valign="bottom" background="../stpics/bottombar.gif"> 
      <!--#include file="foot.asp"--> </td>
  </tr>
</table>
</body>
</html>
<!--#include file="ccon.asp"-->

nu är problemet bara att den här sidan använder sig av frames, så jag vet inte var jag ska länka till för att kunna använda request.querystring bland annat...

1. är det något fel på funktionerna menuitemdown/menuitemup?
2. hur ska jag göra med länken?
3. går det att köra funktionerna genom att kolla om request.querystring är rätt?

Det är på denna sida man lägger till kategorier, och man ska även kunna lägga till underkategorier när jag är klar.

Mvh Sanji

Medlem sedan juni 20019 519 inlägg
#20

1. Jag kan tycka det, men den kommer fungera. Connection objektet vet jag inte var den kommer ifrån om man bara kolla på metoden.
2. Vilka länkar? de för att flytta något upp och ner? Du vet väl deras position i en lista, bara att +/-/erstätta dess position mot den nästkommande?
3.

If Request.Querystring("sanji") = "ja" Then
Call MySub(xxx)
End If
410 ms totalt · 4 externa anrop · v20260731065814-full.a51de22e
128 ms — deklarationer (db)
0 ms — hämta statistik (cache)
147 ms — hämta tråd, inlägg och bilagor (db)
123 ms — ändringar (db)