Avatar billede krokohunter Nybegynder
22. marts 2005 - 14:25 Der er 1 kommentar og
1 løsning

Rykke rækkefølgen af menupunkter op og ned

Hej.

Jeg er igang med at lave et lille CMS til en lille side. I CMS'et skal der være mulighed for at kunne rykke op og ned på rækkefølgen af menupunkterne.

Det har dog voldt lidt problemer for mig. Så vist jeg kan se, retter mit script kun placerings-variablen for den placering der bliver overtaget, og ikke for den der bliver flyttet. Jeg kan dog ikke helt se hvorfor.

Er der nogen der kan hjælpe mig.

200 point på højkant, da jeg gerne skal have det til at virke i morgen.

Niels

-----------

<%
Case "ret_op"
%>
<!--#include file="../db_connect/db_connect_cms.htm"-->
<%
strSQL = "Select * from Menusider Where Id = " & Request.QueryString("id_ret")
' udfør forespørgelse (rs indeholder nu resultatet)
Set rs = Conn.Execute(strSQL)

If rs("Placering") <> 1 then

Dim pladsop1, pladsop2

pladsop1 = rs("Placering") - 1
pladsop2 = rs("Placering")

' SQL sætning opbygges
strSQL1 = "Update Menusider set "
strSQL1 = strSQL1 & "Placering='" & pladsop1 &"'"
strSQL1 = strSQL1 & " Where Id = " & Request.QueryString("id_ret")

' SQL sætning eksekveres
Conn.Execute(strSQL1)

' SQL sætning opbygges
strSQL2 = "Update Menusider set "
strSQL2 = strSQL2 & "Placering='" & pladsop2 &"'"
strSQL2 = strSQL2 & " Where Placering = " & pladsop1

' SQL sætning eksekveres
Conn.Execute(strSQL2)

' luk databaseforbindelsen
Conn.Close
Set Conn = Nothing

Response.Redirect "cms.asp?menuvalg=oversigt"

Else
Response.Redirect "cms.asp?menuvalg=oversigt"
End if

%>
<%
Case "ret_ned"
%>
<!--#include file="../db_connect/db_connect_cms.htm"-->
<%
strSQL = "Select * from Menusider Where Id = " & Request.QueryString("id_ret")
' udfør forespørgelse (rs indeholder nu resultatet)
Set rs = Conn.Execute(strSQL)

' Tæller antal poster i tabellen Menusider
strSQL = "SELECT COUNT(Id) AS Antal FROM Menusider"
Set rscount = Conn.Execute(strSQL)


If rs("Placering") <> rscount("Antal") then

Dim pladsned1, pladsned2
pladsned1 = rs("Placering") + 1
pladsned2 = rs("Placering")

' SQL sætning opbygges
strSQL = "Update Menusider set "
strSQL = strSQL & "Placering='" & pladsned1 &"'"
strSQL = strSQL & " Where Id = " & rs("Id")

' SQL sætning eksekveres
Conn.Execute(strSQL)

' SQL sætning opbygges
strSQL = "Update Menusider set "
strSQL = strSQL & "Placering='" & pladsned2 &"'"
strSQL = strSQL & " Where Placering = " & pladsned1

' SQL sætning eksekveres
Conn.Execute(strSQL)

' luk databaseforbindelsen
Conn.Close
Set Conn = Nothing

Response.Redirect "cms.asp?menuvalg=oversigt"

Else
Response.Redirect "cms.asp?menuvalg=oversigt"
End if

%>
Avatar billede moejensen Nybegynder
22. marts 2005 - 14:36 #1
prøv at sætte CInt() uden om dine variabler og rs, hvor der er tale om tal, så er du sikker på at den regner med tal.
Avatar billede krokohunter Nybegynder
23. marts 2005 - 10:56 #2
Hey Moejensen.

Tak for dit forslag. Det var dog ikke det der var problemet.

Jeg har selv fundet løsningen, så jeg lukker spørgsmålet igen.

Problemet var, at jeg først ændrede den oprindelige placering, og derefter den placering der bliver overtaget, men da den overtagede ville finde sig selv udfra den oprindelige (efter den er blevet rettet), endte de op med den samme placering.

Løsningen er, at rette den placering der bliver overtaget først, og så derefter den oprindelige.

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