13. oktober 2004 - 09:29Der er
22 kommentarer og 2 løsninger
Kan ikke slette RS
Hvorfor virker det ikke? Jeg mangler nok en delete i <input type="hidden" name="ToDo" value="updatemain">, men man kan jo ikke bare skrive value="updatemain, delete" eller value="updatemain delete"
<% id = Request("ID") navn = Request("menunavn") prioritet = Request("prioritet") ToDo = Request("ToDo")
If ToDo = "updatemain" Then Conn.Execute("UPDATE menumain SET mainmenu='" & navn & "', priorityID=" & prioritet & " WHERE id=" & id) Response.Redirect("view.asp") ElseIf ToDo = "updatemain" Then Conn.Execute "DELETE FROM menumain WHERE ID = " & id Conn.Execute "DELETE FROM menusub WHERE parent = " & id Response.Redirect "view.asp" Else Conn.Execute("INSERT INTO menumain (mainmenu, priorityID) VALUES('" & navn & "', " & prioritet & ")") Response.Redirect("view.asp") End If Conn.Close %>
<form name="opdatermenu<%=i%>" action="updatemain.asp" method="post"> <tr> <input type="hidden" name="ID" value="<%=RS("ID")%>"> <input type="hidden" name="ToDo" value="updatemain"> <a href="#" onclick="if(confirm('Er du sikker?\nDenne hovedmenu med tilhørende undermenuer vil blive slettet!')) window.location.href='view.asp?ToDo=delete&id=<%=Server.URLEncode(RS("ID"))%>'" onfocus="this.blur();">Slet</a> </tr> </form>
If ToDo = "updatemain" Then ... ElseIf ToDo = "updatemain" Then ... Else ... End If
Hvis strengværdien ToDo er lig "updatemain" udføres det der står i første if sætning hvis ToDo er alt andet end "updatemain" udføres det der står i nederste else. Det der står i ElseIf udføres aldrig.
Jeg er ikke helt sikker på hvad du vil, men du skal nok have fat i en vb script funktion der finder ud af om en streng indeholder en bestemt substring. Mener der er en SubString().
Alt efter hvad det er du vil skal det se nogenlunde således ud:
If SubString(ToDo, "updatemain") Then ... ElseIf SubString(ToDo, "delete") Then ... Else ... End If
Eller sådan:
If SubString(ToDo, "updatemain") Then ... If SubString(ToDo, "delete") Then ... End If Else ... End If
Håber det var noget i den retning du var ude efter
Eller kan sætte en ekstra hidden ind, som kan klare opgaven:
<% id = Request("ID") navn = Request("menunavn") prioritet = Request("prioritet") ToDo = Request("ToDo") deletemain = Request("deletemain")
If ToDo = "udpatemain" Then Conn.Execute("UPDATE menumain SET mainmenu='" & navn & "', priorityID=" & prioritet & " WHERE id=" & id) Response.Redirect("view.asp") Else Conn.Execute("INSERT INTO menumain (mainmenu, priorityID) VALUES('" & navn & "', " & prioritet & ")") Response.Redirect("view.asp") End If
If deletemain = "delete" Then Conn.Execute "DELETE FROM menumain WHERE ID = " & id Conn.Execute "DELETE FROM menusub WHERE parent = " & id Response.Redirect "view.asp" End If
Conn.Close %>
<form> <input type="hidden" name="ToDo" value="opdater"> <input type="hidden" name="delete" value="delete"> <a href="#" onclick="if(confirm('Er du sikker på, at du vil slette denne hovedmenu med tilhørende undermenuer?\nDenne handling kan ikke fortrydes!')) window.location.href='view.asp?deletemain=delete&id=<%=Server.URLEncode(RS("ID"))%>'" onfocus="this.blur();">Slet</a> </form>
<% id = Request("ID") navn = Request("menunavn") prioritet = Request("prioritet") ToDo = Request("ToDo") deletemain = Request("deletemain")
If ToDo = "udpatemain" Then Conn.Execute("UPDATE menumain SET mainmenu='" & navn & "', priorityID=" & prioritet & " WHERE id=" & id) Response.Redirect("view.asp") Else Conn.Execute("INSERT INTO menumain (mainmenu, priorityID) VALUES('" & navn & "', " & prioritet & ")") Response.Redirect("view.asp") End If
If deletemain = "delete" Then Conn.Execute "DELETE FROM menumain WHERE ID = " & id Conn.Execute "DELETE FROM menusub WHERE parent = " & id Response.Redirect "view.asp" End If
Conn.Close %>
<form> <input type="hidden" name="ToDo" value="opdater"> <input type="hidden" name="deletemain" value="delete"> <a href="#" onclick="if(confirm('Er du sikker på, at du vil slette denne hovedmenu med tilhørende undermenuer?\nDenne handling kan ikke fortrydes!')) window.location.href='view.asp?deletemain=delete&id=<%=Server.URLEncode(RS("ID"))%>'" onfocus="this.blur();">Slet</a> </form>
Så burde der næsten laves 2 knapper, en til at opdatere med, og en anden til at slette med? Eller det, som jeg som udgangspunkt har lavet, nemlig linket:
<a href="#" onclick="if(confirm('Er du sikker på, at du vil slette denne hovedmenu med tilhørende undermenuer?\nDenne handling kan ikke fortrydes!')) window.location.href='view.asp?deletemain=delete&id=<%=Server.URLEncode(RS("ID"))%>'" onfocus="this.blur();">Slet</a>
De nye forslag du kommer med er egentlig gode nok, bortset fra at både update og delete altid vil blive udført. Jeg går ikke ud fra at det er det du vil!
Der sker ikke en dyt, når jeg forsøger at slette, men jeg lægger lige noget opdateret kode:
id = Request("ID") navn = Request("menunavn") prioritet = Request("prioritet") ToDo = Request("ToDo") deletemain = Request("deletemain")
If ToDo = "updatemain" Then Conn.Execute("UPDATE menumain SET mainmenu='" & navn & "', priorityID=" & prioritet & " WHERE id=" & id) 'Response.Redirect("editmenu.asp?status=1&menuID=" & id) Response.Redirect("view.asp") Else Conn.Execute("INSERT INTO menumain (mainmenu, priorityID) VALUES('" & navn & "', " & prioritet & ")") Response.Redirect("view.asp") End If
If deletemain = "delete" Then Conn.Execute "DELETE FROM menumain WHERE ID = " & id Conn.Execute "DELETE FROM menusub WHERE parent = " & id Response.Redirect "view.asp" End If
Conn.Close %>
<form> <input type="hidden" name="ToDo" value="updatemain"> <input type="hidden" name="deletemain" value="delete"> <a href="#" onclick="if(confirm('Er du sikker på, at du vil slette denne hovedmenu med tilhørende undermenuer?\nDenne handling kan ikke fortrydes!')) window.location.href='view.asp?deletemain=delete&id=<%=Server.URLEncode(RS("ID"))%>'" onfocus="this.blur();">Slet</a> </form>
update virker fint. Når jeg trykker på linket "Slet", virker det som om, at der bliver slettet, det tager lige et sekund eller halvandet, men intet bliver slettet.
Jeg fik hjælp af rbl. Kan du ikke lægge et svar? Her er løsningen:)
<% id = Request("ID") navn = Request("menunavn") prioritet = Request("prioritet") ToDo = Request("ToDo")
If ToDo = "opdater" Then Conn.Execute("UPDATE menumain SET mainmenu='" & navn & "', priorityID=" & prioritet & " WHERE id=" & id) Response.Redirect("editmenu.asp?status=1&menuID=" & id) ElseIf ToDo = "delete" Then Conn.Execute "DELETE FROM menumain WHERE ID = " & id Conn.Execute "DELETE FROM menusub WHERE parent = " & id Response.Redirect "view.asp" Else Conn.Execute("INSERT INTO menumain (mainmenu, priorityID) VALUES('" & navn & "', " & prioritet & ")") Response.Redirect("view.asp") End If Conn.Close %>
nheilbuth får 20 point for den store indsats, og rbl får 40 for den korrekte løsning. Håber det er til alles tilfredsstillelse? Tak til begge, nye bedste venner :)
Synes godt om
Ny brugerNybegynder
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.