Avatar billede paaj Nybegynder
17. juli 2006 - 00:12 Der er 18 kommentarer og
1 løsning

Jeg vil tale med Fennec om problem med Menu system og Opdater

Hej Fennec :-)

Jeg vil spørge dig hvorfor virker ikke med opdater ved menu..

Arkiv ikke = 0  betyder vise ikke menu
Arkiv =  betyder give vise på menu (ingen med tal 0)

jeg vil give dig vise kode der

Redigere:

<SELECT NAME="pID" style="width:100;height:22">
<OPTION VALUE="0" <% if rs("pID") = 0 then response.write("SELECTED") %>>Arkiv ikke
<OPTION VALUE="" <% if rs("pID") =  then response.write("SELECTED") %>>Arkiv
</SELECT>

hvis uden 0 tal.. så vil ikke give opdater.. hmm hmm.. men selvom med 0 tal virker give opdater.. men jeg synes er underligt. jeg håber kan få lidt hjælpe med om en løsning

Opdater:
<%
Set Conn = Server.CreateObject("ADODB.Connection")
Conn.Open "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & server.MapPath("config/DB.mdb")

SQLstmt = "UPDATE DISTINCTROW Menu SET pID= '" & request.form("pID") & "', Link = '" & request.form("Link") & "', Menu = '" & request.form("Menu") & "', Sort = '" & request.form("Sort") & "' WHERE id = " & Request("id")
'SQLstmt = SQLstmt & " VALUES (" & request.form("pID") & ",'" & request.form("Link") & ")" & request.form("Menu") & ")" & request.form("Sort") & ")"

'response.write SQLstmt

Conn.Execute (SQLstmt)

conn.Close
Set conn = nothing
Set SQLstmt = nothing

response.redirect ("default.asp?action=menusystem")
%>

men Database:
Table = Menu
ID = auto
pID = tal med 0
Menu = Tekst
Link = Tekst
Sort = tal med 0
Avatar billede thesurfer Nybegynder
17. juli 2006 - 00:32 #1
Efter et hurtigt kig:

1)
Korrekt opsætning (husk "</option>"):
<select ...>
<option value="værdi">tekst</option>
<option value="værdi">tekst</option>
</select>

2)
Brug enten "request.form" eller "request.querystring" (hvis data sendes via url) i stedet for bare "request":
WHERE id = " & Request("id")
Avatar billede thesurfer Nybegynder
17. juli 2006 - 00:35 #2
Hvis du får en fejl i linien "Conn.Execute (SQLstmt)", kig her: http://asp-faq.dk/article/?id=4
Avatar billede paaj Nybegynder
17. juli 2006 - 00:46 #3
1)
Korrekt opsætning (husk "</option>"):
<select ...>
<option value="værdi">tekst</option>
<option value="værdi">tekst</option>
</select>

var ikke rigtigt. fordi skal være

<SELECT NAME="pID" style="width:100;height:22">
<OPTION VALUE="0" <% if rs("pID") = 0 then response.write("SELECTED") %>>Arkiv ikke
<OPTION VALUE="" <% if rs("pID") =  then response.write("SELECTED") %>>Arkiv
</SELECT>

hvis jeg tager
<SELECT NAME="pID" style="width:100;height:22">
<OPTION VALUE="0" <% if rs("pID") = 0 then response.write("SELECTED") %>>Arkiv ikke
<OPTION VALUE="" <% if rs("pID") = 1 then response.write("SELECTED") %>>Arkiv
</SELECT> der er virker.. men selvom kan ikke vise menu.. skal være VÆK "1" som uden tal...

Opdater er virker 100% fordi uden tal. virker ikke. hvis med 0 og 1 virker.. jeg skal have uden tal under "Arkiv"
Avatar billede paaj Nybegynder
17. juli 2006 - 00:48 #4
Jeg har ikke helt problem med opdater
Conn.Execute (SQLstmt) er virker godt som jeg har alt uden problem.. men bare problem med tal 0 og uden tal... men hvis have 0 og 1 virker.. men mener jeg der skal VÆK 1 tal... fordi er samme 0 og 1 give ikke vise menu.. hvis uden 1.. vise menu.. når hvis jeg valg 0.. så vise ikke menu som "Arkiv ikke" bare det..
Avatar billede thesurfer Nybegynder
17. juli 2006 - 01:04 #5
Du mangler "</option>". Det skal se sådan ud, for at det er korrekt opsætning:

<SELECT NAME="pID" style="width:100;height:22">
<OPTION VALUE="0" <% if rs("pID") = 0 then response.write("SELECTED") %>>Arkiv ikke</option>
<OPTION VALUE="" <% if rs("pID") =  then response.write("SELECTED") %>>Arkiv</option>
</SELECT>


Hvis feltet pID har "tillad nullængde" sat til "ja"/"sand"/"true", burde der ikke opstå problemer.
Hvis det ikke er sat til "ja/sand/true", vil du få et problem, når værdien er "" i stedet for "0".

Du skal derfor lige undersøge "tillad nullængde" på feltet "pID" i din database.

PS: Du har ikke skrevet om du får nogen fejl, så jeg går ud fra, at du IKKE får nogen fejl.
Avatar billede paaj Nybegynder
17. juli 2006 - 01:17 #6
Hej igen...

Men er virker ikke endnu..  men jeg tænke på give dig kode.. måske du har funde noget finder ud løsning.. kode Menu

<%
'wilweb.dk
dim Conn, DSN
Set Conn = Server.CreateObject("ADODB.Connection")
DSN = "DRIVER={Microsoft Access Driver (*.mdb)}; "
DSN = DSN & "DBQ=" & Server.MapPath ("config/DB.mdb")
conn.Open DSN

Function TegnMenu(ThisID,Indrykning)
dim FunkRS

'select rodpunkter eller underpunkter
if ThisID <> "1" then
  'Underpunkter
  set FunkRS = conn.Execute("select * from menu where pID="& ThisID &" order by sort")
else
  'Roden af menuen
  set FunkRS = conn.execute("select * from menu where pID is null order by sort")
end if

do while not FunkRS.eof
  'tegn menupunktet
  if FunkRS("link") <> "" then
    response.write "<tr><td style='border-style: none; border-width: medium' width='170' valign='top' height='10'><font face='Verdana' style='font-size: 9pt' color='#EFECEB'>+ <a class='menu' href="""& FunkRS("link") &""">"& FunkRS("menu") &"</font></a></td></tr>"&chr(13)
    response.write "</font>"
  else
    response.write "<tr><td style='border-style: none; border-width: medium' width='170' valign='bottom' height='25'><font face='Verdana' style='font-size: 11pt' color='#FFC06F'><b><i>"& FunkRS("menu") &"</i></b></font></td></tr>"&chr(13)
  end if
  'kald funktionen igen for at finde evt underpunkter
  TegnMenu FunkRS("id"),Indrykning&"&nbsp;&nbsp;"
  FunkRS.MoveNext
loop
End function

Response.write "<table>"
TegnMenu "",""
Response.write "</table>"
%>

Eller du vil se Test på om det måske du kan finder ud af.. hvis du vil se på Test jeg sende en link ??
Avatar billede paaj Nybegynder
17. juli 2006 - 01:19 #7
Fejl og der er rigtigt kode

<%
'wilweb.dk
dim Conn, DSN
Set Conn = Server.CreateObject("ADODB.Connection")
DSN = "DRIVER={Microsoft Access Driver (*.mdb)}; "
DSN = DSN & "DBQ=" & Server.MapPath ("config/DB.mdb")
conn.Open DSN

Function TegnMenu(ThisID,Indrykning)
dim FunkRS

'select rodpunkter eller underpunkter
if ThisID <> "" then
  'Underpunkter
  set FunkRS = conn.Execute("select * from menu where pID="& ThisID &" order by sort")
else
  'Roden af menuen
  set FunkRS = conn.execute("select * from menu where pID is null order by sort")
end if

do while not FunkRS.eof
  'tegn menupunktet
  if FunkRS("link") <> "" then
    response.write "<tr><td style='border-style: none; border-width: medium' width='170' valign='top' height='10'><font face='Verdana' style='font-size: 9pt' color='#EFECEB'>+ <a class='menu' href="""& FunkRS("link") &""">"& FunkRS("menu") &"</font></a></td></tr>"&chr(13)
    response.write "</font>"
  else
    response.write "<tr><td style='border-style: none; border-width: medium' width='170' valign='bottom' height='25'><font face='Verdana' style='font-size: 11pt' color='#FFC06F'><b><i>"& FunkRS("menu") &"</i></b></font></td></tr>"&chr(13)
  end if
  'kald funktionen igen for at finde evt underpunkter
  TegnMenu FunkRS("id"),Indrykning&"&nbsp;&nbsp;"
  FunkRS.MoveNext
loop
End function

Response.write "<table>"
TegnMenu "",""
Response.write "</table>"
%>
Avatar billede thesurfer Nybegynder
17. juli 2006 - 01:20 #8
Giv et link til en test side..
Avatar billede thesurfer Nybegynder
17. juli 2006 - 01:22 #9
Jeg har fundet en fejl.

Du bruger både
pID="
og
pID= '"

Du kan kun bruge én af dem.

Hvis pID er af typen "tal", dvs pID må/kan IKKE indeholde bogstaver, skal du bruge: pID = "

Hvis pID er af typen "tekst", dvs pID MÅ indeholde "123abc", skal du bruge: pID = '"
Avatar billede thesurfer Nybegynder
17. juli 2006 - 01:25 #10
Hvorfor har du ikke skrevet, at du får en fejl i denne linie?:

<OPTION VALUE="" <% if rs("pID") =  then response.write("SELECTED") %>>Arkiv

Det skal være:

<OPTION VALUE="" <% if rs("pID") = "" then response.write("SELECTED") %>>Arkiv</option>

Altså: if rs("pID") = "" then

Igen:
Hvis pID er tekst, brug: if rs("pID") = "0" then

Eller konverter rs("pID") til tal og bruge 0, men det er overflødigt at bruge en konvertering, hvis indeholdet af pID er tal.
Avatar billede paaj Nybegynder
17. juli 2006 - 01:46 #11
Ja.. men du kan se rød billede.. betyder Arkiv ikke.. men hvis vil skift Grøn til Arkiv.. virker ikke.,. men du kan prøve kigger hvis er grøn.. prøv til Arkvi ikke.. er saelvom virker godt på opdater.... end RØD

det er link: http://peter.paaj.dk/eksperten/720955/TEST_MenuAdmin/default.asp
Avatar billede paaj Nybegynder
17. juli 2006 - 01:47 #12
ja.. men har gjort som jeg prøve alt muligt.. men kunne ikke være.. men måske du kan se der link.. når du ved hvad er noget galt med det
Avatar billede fennec Nybegynder
17. juli 2006 - 08:40 #13
Nu har jeg læst dit ? og alle kommentare, og må nok indrømme at jeg ikke helt kan forstå dit problem.

Om ikke andet så har du vist misforstået hvad pID betyder. pID betyder parentID, og bruges til at lave undermenuer. Hvis pID=NULL betyder det at menupunktet er et topmenu. F.eks sådan:

[Menu]
1, NULL, "Topmenu 1", "", 0
2, NULL, "Topmenu 2", "", 1
3, NULL, "Topmenu 3", "", 2
4, 2, "Submenu1 til Top2", "", 0
5, 2, "Submenu2 til Top2", "", 0
6, 5, "Submenu til Submenu2", "", 0

Dette giver så en menu opbygning som ser sådan ud med mit script:
Topmenu 1
Topmenu 2
- Submenu1 til Top2
- Submenu2 til Top2
-- Submenu til Submenu2
Topmenu 3

Hvis du vil lave skjulte menupunkter, skal du have en ny kolonne på tabellen, som du kan bruge til det.
Avatar billede paaj Nybegynder
17. juli 2006 - 13:53 #14
Ja jeg ved godt.. men jeg har fundet noget løsning.. men hvor jeg kan indlæg som skjulte..  hvordan?? 

if ThisID <> "" then
  'Underpunkter
  set FunkRS = conn.Execute("select * from menu where pID="& ThisID &" order by sort")
else
  'Roden af menuen
  set FunkRS = conn.execute("select * from menu where pID is null order by sort")
end if

jeg håber kan får lidt hjælp?
Avatar billede fennec Nybegynder
17. juli 2006 - 14:13 #15
Smid en ekstra kolonne på din tabel:

[Menu]
ID = auto
pID = tal med 0
Menu = Tekst
Link = Tekst
Sort = tal med 0
Hidden = tal (default 0)

Omdøb så din pID dropdown til "hiddenMenu":
<SELECT NAME="hiddenMenu" style="width:100;height:22">
<OPTION VALUE="0" <% if rs("hidden") = 0 then response.write("SELECTED") %>>Vises
<OPTION VALUE="" <% if rs("hidden") = 1 then response.write("SELECTED") %>>Skjult
</SELECT>

.. og indsæt den værdi i "Hidden"
conn.execute("insert into Menu(...,hidden) values(...,"& request.form("hiddenMenu") &")"

Du skal så bare ændre disse linjer i funktionen:

if ThisID <> "" then
  'Underpunkter
  set FunkRS = conn.Execute("select * from menu where hidden=0 and pID="& ThisID &" order by sort")
else
  'Roden af menuen
  set FunkRS = conn.execute("select * from menu where hidden=0 and pID is null order by sort")
end if
Avatar billede paaj Nybegynder
17. juli 2006 - 14:48 #16
Til fennec..

der er alt virker godt uden problem mange tak for hjælpe
Avatar billede paaj Nybegynder
17. juli 2006 - 14:49 #17
Fennec - Vil du have 100 Ponit nu ?
Avatar billede fennec Nybegynder
17. juli 2006 - 15:11 #18
.o) <-- One Eyed Jack
Avatar billede paaj Nybegynder
17. juli 2006 - 15:14 #19
Ja såå du får nu.. tak for hjælpe og så der er rigtigt dejlig vejr idag..  kan du ha en god dag.. så måske kommer nogte ny min opgaver som noget galt.. men jeg håber ikke.. hihi..

Så er lukket nu..
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