Avatar billede steen_hansen Forsker
15. oktober 2004 - 15:01 Der er 50 kommentarer og
1 løsning

Link skal laves om til submit

Hvis jeg forsøger at lave dette link om til en submit-knap, kan jeg ikke slette det pågældende recordset fra databasen:

<a href="#" onclick="if(confirm('Er du sikker på, at du vil slette denne undermenu?\nDenne handling kan ikke fortrydes!')) window.location.href='updatesub.asp?ToDo=delete&id=<%=Server.URLEncode(RS("ID"))%>'" onfocus="this.blur();">Slet</a>

- laves om til

<input type="submit" onclick="if(confirm('Er du sikker på, at du vil slette denne undermenu?\nDenne handling kan ikke fortrydes!')) window.location.href='updatesub.asp?ToDo=delete&id=<%=Server.URLEncode(RS("ID"))%>'" value="Slet" class="input2">

- men der slettes ikke noget fra DB
Avatar billede jytte Nybegynder
15. oktober 2004 - 15:53 #1
hvis du bare vil have en knap skal du nok bruge "button" i stedet for "submit".

Hvis det skal være en submit skal der være en form med en action hvor adressen på den side du vil gå til skal stå.
Avatar billede steen_hansen Forsker
15. oktober 2004 - 17:11 #2
Ja, det var en fejl, her havde jeg fejlagtigt skrevet ="submit", men selvom input type="button" ændrer det ikke ved noget. Andre gode forslag? :)
Avatar billede eagleeye Praktikant
15. oktober 2004 - 17:29 #3
hvis det skal være på samme form som i dette spørgsmål http://www.eksperten.dk/spm/550775

Så må du rette så linket bliver til denne submit :

    <td align="center" id="TDWidth4P"><input type="submit" onclick="this.form.ToDo.value='delete'">Slet hovedmenu</a></td>


Så skal du på den anden submit "Opater" tilføje onclick så den rette ToDo til opdater: 
onclick="this.form.ToDo.value='updatemain'"

Så skal form tagen rettes til dette så det er på onSubmit den spørger hvis ToDo=='delete'

<form name="updatemainmenu<%=i%>" action="spm550775updatemain.asp" method="post" onsubmit="if(this.ToDo.value=='delete') {return confirm('Er du sikker på, at du vil slette denne hovedmenu med tilhørende undermenuer?\nDenne handling kan ikke fortrydes!') } else {return true}">
Avatar billede steen_hansen Forsker
15. oktober 2004 - 17:42 #4
Det virker jo, kan man snart forvente andet? :)

eagleeye, læg lige et svar - igen :)
Avatar billede steen_hansen Forsker
15. oktober 2004 - 17:45 #5
Og ja, det er istedet for linket i http://www.eksperten.dk/spm/550775. Jeg syntes det blev noget mærkeligt noget at se på med links :)
Avatar billede eagleeye Praktikant
15. oktober 2004 - 17:48 #6
Ok :)
Avatar billede steen_hansen Forsker
15. oktober 2004 - 17:49 #7
Takker igen, bedste ven - og tak til jytte også, men eagleeye leverede løsningen. Håber det er ok? :)
Avatar billede steen_hansen Forsker
15. oktober 2004 - 17:54 #8
Hov, mens jeg har dig: Hvis jeg vil bruge en input type="button" som link (nu er alle de andre også submit-buttons), hvordan skal den så se ud?

<a style="display: block; width: 100%;" href="/borch/admin/menus/editsub.asp?menuID=<%=Server.URLEncode(RS("ID"))%>" onfocus="this.blur();">Rediger undermenuer</a>

Jeg opretter et nyt spørgsmål. Eller skal jeg gøre det først? Er lidt i tvivl, om det er i strid med reglerne ....
Avatar billede steen_hansen Forsker
15. oktober 2004 - 18:00 #9
Hvis I skulle have lyst til at kigge på det, så ligger spørgsmålet her:

http://www.eksperten.dk/spm/550827
Avatar billede eagleeye Praktikant
15. oktober 2004 - 18:01 #10
Så kan du lave kappen i stil med:

    <input type="button" onclick="location.href='borch/admin/menus/editsub.asp?menuID=<%=Server.URLEncode(RS("ID"))%>'" name="submit1" value="Rediger undermenuer">
Avatar billede eagleeye Praktikant
15. oktober 2004 - 18:02 #11
hov der smutede et / først i linket.

    <input type="button" onclick="location.href='/borch/admin/menus/editsub.asp?menuID=<%=Server.URLEncode(RS("ID"))%>'" name="submit1" value="Rediger undermenuer">
Avatar billede steen_hansen Forsker
15. oktober 2004 - 18:03 #12
Du er rå, eagleeye. Skynd dig lige at lægge et svar på det oprettede spørgsmål :)
Avatar billede eagleeye Praktikant
15. oktober 2004 - 18:08 #13
ok, du nåede at oprette et nyt spørgsmål :)
Bare tag dem selv eller giv dem til roenving.
Avatar billede steen_hansen Forsker
15. oktober 2004 - 18:57 #14
Ja, det var noget rod :oD

- Og nej, I skal begge have tak. Kan du ikke svare på http://www.eksperten.dk/spm/550849?
Avatar billede steen_hansen Forsker
15. oktober 2004 - 21:48 #15
eagleeye?
Avatar billede eagleeye Praktikant
15. oktober 2004 - 22:17 #16
Ok så svare jeg lige, jeg har været væk fra PC'en her til aften.
Avatar billede steen_hansen Forsker
15. oktober 2004 - 22:31 #17
Fint nok, det har jeg også. Jeg har et "mindre" problem med, at alle undermenuer slettes, når jeg sletter én undermenu, og det er jo ikke så hensigtsmæssigt.

Hvis du gider at kigge på http://www.include.dk/borch/admin/menus/editmain.asp, så vil jeg lige prøve at oprette et nyt spørgsmål med beskrivelse af problem og lægge koden ud. Håber du får tid og lyst til at kigge på det.

Hvis du gør, så prøv at oprette nogle hovedmenuer og knytte nogle undermenuer til. Slet/Rediger/Tilføj som du lyster. Det vil nok være en fordel for dig at se funktionerne. Hvis ikke du har tid, er det selvfølgelig også i orden :)

Uanset hvad, så opretter jeg spørgsmålet. Jeg så bare lige en fordel i at du kiggede på det, nu kender du jo lidt til koden :)
Avatar billede eagleeye Praktikant
15. oktober 2004 - 22:37 #18
Det ID som er angivet i linket som sletter i databasen er ParentID og ikke ID'et på under-menuen som skal slettes.

Eks, ID=48 op under menuen og parentID=57 linket som sletter har ID=57 altså ParentID'et:
<input type="hidden" name="ID" value="48">
<input type="hidden" name="parentID" value="57">
<a href="#" onclick="if(confirm('Er du sikker på, at du vil slette denne undermenu?\nDenne handling kan ikke fortrydes!')) window.location.href='updatesub.asp?ToDo=delete&id=57'" onfocus="this.blur();">Slet</a>
Avatar billede steen_hansen Forsker
15. oktober 2004 - 22:40 #19
Ok, jeg har angivet ID'et på hovedmenuen, og ikke på undermenuen?
Avatar billede eagleeye Praktikant
15. oktober 2004 - 22:41 #20
Ja.
Avatar billede steen_hansen Forsker
15. oktober 2004 - 22:42 #21
Det kører for mig i dag. Tror snart jeg skal slukke pc'en, gå i seng og sove længe :)

Kigger lige på det igen.
Avatar billede eagleeye Praktikant
15. oktober 2004 - 22:42 #22
Hvis du bruge denne til delete:

    Conn.Execute "DELETE FROM menumain WHERE ID = " & id
    Conn.Execute "DELETE FROM menusub WHERE parent = " & id

Så skal du være opmærksom på det er to forskellige tabeller, så du skal nok havde lavet det sådan at når du sletter under menuer så skal det være en speciel ToDo sådan den kun slette en post fra menusub hvor ID=det valgte menu punkt:

    Conn.Execute "DELETE FROM menusub WHERE id = " & id
Avatar billede steen_hansen Forsker
15. oktober 2004 - 22:44 #23
Jeg har 2 "execute-sider": updatemain.asp og updatesub.asp, så det er der styr på. Det er updatesub.asp, der halter et eller andet sted.
Avatar billede eagleeye Praktikant
15. oktober 2004 - 22:46 #24
Ok ;)
Avatar billede steen_hansen Forsker
15. oktober 2004 - 22:46 #25
Du kan lige så godt få updatesub.asp:

<%
id = Request("ID")
parent = Request("parentID")
vNameSub = Request("nameofsubmenu")
vPriority = Request("subpriority")
ToDo = Trim(Request("ToDo"))

If ToDo = "updatesub" Then
    Conn.Execute("UPDATE menusub SET submenu='" & vNameSub & "', priorityID=" & vPriority & " WHERE id=" & id)
    Response.Redirect("editsub.asp?status=3&menuID=" & parent)
ElseIf ToDo = "delete" Then
    Conn.Execute "DELETE FROM menusub WHERE parent = " & id
    Response.Redirect("editsub.asp?status=1&menuID=" & id)
Else
    Conn.Execute("INSERT INTO menusub (submenu, parent, priorityID) VALUES('" & vNameSub & "', " & parent & ", " & vPriority & ")")
    Response.Redirect("editsub.asp?status=4&menuID=" & parent)
End If
%>


Der er lidt (en del) mangler på siden endnu, det skal du ikke tage dig af :)
Avatar billede eagleeye Praktikant
15. oktober 2004 - 22:48 #26
ok, men den sletter alle under menuer hvor parentID er lig det parentID som overføres så derfor slettes alle undermenuer når man sletter "et"

    Conn.Execute "DELETE FROM menusub WHERE parent = " & id

Det skal være ID kolonnen på undermenuen som skal brugers:

    Conn.Execute "DELETE FROM menusub WHERE id = " & id
Avatar billede steen_hansen Forsker
15. oktober 2004 - 22:51 #27
Ups, nu vil den slet ikke slette :)

Jeg har lagt dette ind

Conn.Execute "DELETE FROM menusub WHERE id = " & id

i stedet for

Conn.Execute "DELETE FROM menusub WHERE parent = " & id
Avatar billede eagleeye Praktikant
15. oktober 2004 - 22:52 #28
Og du har også rettet linket så det er ID på menuen og ikke parentID som overføres?
Avatar billede steen_hansen Forsker
15. oktober 2004 - 22:53 #29
Linket ser sådan her ud, og det er vel i orden?

<a href="#" onclick="if(confirm('Er du sikker på, at du vil slette denne undermenu?\nDenne handling kan ikke fortrydes!')) window.location.href='updatesub.asp?ToDo=delete&id=<%=Server.URLEncode(RS("ID"))%>'" onfocus="this.blur();">Slet</a>
Avatar billede eagleeye Praktikant
15. oktober 2004 - 22:56 #30
men det ser stadig ud som om det er parentID som står i linket når man kigger med View Source :
window.location.href='updatesub.asp?ToDo=delete&id=57'

Det skal være samme kolonne som kommer ind i hidden feltet ID.
Avatar billede steen_hansen Forsker
15. oktober 2004 - 22:59 #31
Så må det næsten være i formularerne det kører skævt?

<span class="h18">Rediger undermenuer til "<%=Server.HTMLEncode(RS("mainmenu"))%>"</span>
<br><br>
<b>Opret ny undermenu:</b>
<form name="makesubmenu" action="updatesub.asp" method="post">
    <input type="hidden" name="parentID" value="<%=RS("ID")%>">
    <input type="text" name="nameofsubmenu" size="<%=Size1%>" class="input1">
    <input type="text" name="newurl" size="<%=Size2%>" value="<%=RS("url")%>" class="input1">
    <input type="text" name="subpriority" size="<%=Size3%>" class="input1">
    <input type="submit" name="submit" value="Opret" class="input2">
</form>
<b>Rediger undermenuer:</b>

<%
i = 1

Do While NOT submenu.EOF
%>

<form name="updatesubmenu<%=i%>" action="updatesub.asp" method="post">
    <input type="hidden" name="ID" value="<%=submenu("ID")%>">
    <input type="hidden" name="ToDo" value="updatesub">
    <input type="hidden" name="parentID" value="<%=RS("ID")%>">
    <input type="text" name="nameofsubmenu" size="<%=Size1%>" value="<%=submenu("submenu")%>" class="input1">
    <input type="text" name="editurl" size="<%=Size2%>" value="<% If RS("url") <> "" Then %><%=RS("url")%><% End If %>" class="input1">
    <input type="text" name="subpriority" size="<%=Size3%>" value ="<%=submenu("priorityID")%>" class="input1">
    <input type="submit" name="submit" value="Gem" class="input2">
    <a href="#" onclick="if(confirm('Er du sikker på, at du vil slette denne undermenu?\nDenne handling kan ikke fortrydes!')) window.location.href='updatesub.asp?ToDo=delete&id=<%=Server.URLEncode(RS("ID"))%>'" onfocus="this.blur();">Slet</a>
</form>
Avatar billede steen_hansen Forsker
15. oktober 2004 - 23:01 #32
Er det parentID/ID der mixes?
Avatar billede eagleeye Praktikant
15. oktober 2004 - 23:03 #33
Prøv at bruge submenu("ID") i linket og ikke RS("ID"):

<a href="#" onclick="if(confirm('Er du sikker på, at du vil slette denne undermenu?\nDenne handling kan ikke fortrydes!')) window.location.href='updatesub.asp?ToDo=delete&id=<%=Server.URLEncode(submenu("ID"))%>'" onfocus="this.blur();">Slet</a>
Avatar billede steen_hansen Forsker
15. oktober 2004 - 23:06 #34
Så får jeg en type mismatch, når navnet på hovedmenuen trækkes ud:

Rediger undermenuer til "
Microsoft VBScript runtime error '800a000d'

Type mismatch: 'HTMLEncode'

/borch/admin/menus/editsub_.asp, line 9



Linie 9:
<span class="h18">Rediger undermenuer til "<%=Server.HTMLEncode(RS("mainmenu"))%>"</span>
Avatar billede steen_hansen Forsker
15. oktober 2004 - 23:09 #35
Hm? Jeg har rettet det tilbage, og fejlen er der stadig?
Avatar billede eagleeye Praktikant
15. oktober 2004 - 23:10 #36
hmm hvor kommer den fejl?

Prøv evt sådan her:
<span class="h18">Rediger undermenuer til "<%=Server.HTMLEncode(""&RS("mainmenu"))%>"</span>
Avatar billede steen_hansen Forsker
15. oktober 2004 - 23:11 #37
Jeg gik ud af siden og ind på den igen, og så var den væk, så det var bare mig - igen :)

Prøver lige dit forslag.
Avatar billede steen_hansen Forsker
15. oktober 2004 - 23:12 #38
Nej, det ændrede ikke noget :/
Avatar billede eagleeye Praktikant
15. oktober 2004 - 23:15 #39
du skal havde rette det med ID så den tager det som vist i 15/10-2004 23:03:35 fra submenu("id")
Avatar billede steen_hansen Forsker
15. oktober 2004 - 23:17 #40
Nu er det lidt spooky, for jeg oprettede en "Link 3" og fik slettet den, nu kan jeg ikke slette den igen. Det burde da ikke kunne lade sig gøre at slette den, og så pludselig ikke kunne igen? Enten virker det, eller også gør det ikke?
Avatar billede steen_hansen Forsker
15. oktober 2004 - 23:20 #41
Hermed gjort :)

Ok, nu prøvede jeg at slette Link 3 igen, og fik denne fejl efterfølgende:

Rediger undermenuer til " error '80020009'
Exception occurred.

/borch/admin/menus/editsub_.asp, line 9


Jeg gik ud af det igen, gik derefter ind igen, og så er Link 3 væk.
Avatar billede steen_hansen Forsker
15. oktober 2004 - 23:21 #42
... og eagleeye2 er lagt ind :)
Avatar billede eagleeye Praktikant
15. oktober 2004 - 23:26 #43
Ja nu kan jeg se den fejl.

Jeg tror det er din redirect n[r en post er slettet:

  Response.Redirect("editsub.asp?status=1&menuID=" & id)

Den redirecter med ID der skal være parentID da den skal vise undermener for hovedmenuen og ikke for undermenuer. Så prøv at rette den til:

  Response.Redirect("editsub.asp?status=1&menuID=" & parent )
Avatar billede steen_hansen Forsker
15. oktober 2004 - 23:28 #44
Hm? Det ser ud som om du er inde på noget af det rigtige, men der er stadig fejl :/

Prøv at slette en og se hvad den siger
Avatar billede eagleeye Praktikant
15. oktober 2004 - 23:29 #45
Arh og det overføres ikke via linket så du skal havde udvidet linket til også at havde parentID'et med. Så linket bliver:


<a href="#" onclick="if(confirm('Er du sikker på, at du vil slette denne undermenu?\nDenne handling kan ikke fortrydes!')) window.location.href='updatesub.asp?ToDo=delete&id=<%=Server.URLEncode(submenu("ID"))%>&parentid=<%=Server.URLEncode(RS("ID"))%>'" onfocus="this.blur();">Slet</a>
Avatar billede steen_hansen Forsker
15. oktober 2004 - 23:33 #46
YES, det virker! For Sa.... hvor er det godt, og hvor har det irriteret :)

2 sek.
Avatar billede steen_hansen Forsker
15. oktober 2004 - 23:34 #47
Svar lige på den her: http://www.eksperten.dk/spm/550935
Avatar billede steen_hansen Forsker
16. oktober 2004 - 00:01 #48
HVIS du ikke er gået i seng, så har jeg én til. Sig til, hvis jeg strammer skruen. Det kan også være, at der er andre, der kan :)

http://www.eksperten.dk/spm/550943
Avatar billede steen_hansen Forsker
16. oktober 2004 - 01:42 #49
Jeg fik klaret den. Fortsat god weekend :)
Avatar billede steen_hansen Forsker
16. oktober 2004 - 20:21 #50
eagleeye, det har hele tiden været meningen, at menuen på http://www.include.dk/borch/ skal virke som den på http://www.topdanmark.dk/familie/familie.html. Dvs. der som udgangspunkt ikke skal trækkes undermenuer ud, alle menuerne skal være "klappet sammen", så man kun ser hovedmenuerne. På en eller anden måde skal undermenuerne, der er knyttet til den hovedmenu, der trykkes på, trækkes ud v.hj.a. en løkke. De andre hovedmenuer skal så stadig være "foldet sammen".

Er det svært? Er det et stort arbejde? Er det noget du har lyst til at lave for mig, hvis jeg opretter et nyt spørgsmål? I givet fald får du 200 point for det. Det er mere, end jeg lige kan overskue :/
Avatar billede steen_hansen Forsker
16. oktober 2004 - 20:33 #51
Jeg prøver lige at se om jeg kan klare det selv i første omgang, fik lige en fiks idé .... tror jeg nok. Men hvis det slet ikke vil spille ordentligt, opretter jeg et spørgsmål :)

Jeg vil tro, at man kan lave noget

If chosenmain = 1 Then
    Træk undermenuerne, der er knyttet til hovedmenu1, ud
ElseIf chosenmain = 2 Then
    Træk undermenuerne, der er knyttet til hovedmenu2, ud
.........
End If

Det problem, jeg højst sandsynligt vil få, er at få valgt undermenuerne. Men jeg prøver i første omgang selv :)
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