Avatar billede phoenix_2003 Nybegynder
28. juni 2003 - 13:56 Der er 21 kommentarer og
1 løsning

Hent asp(id) i tabel ved opstart

Jeg har en menu.asp med forskellige menuer med hver sin ID. På min hoved side (default.asp) har jeg oprettet en tabel, hvor den første menu (menu.asp?ID=1) skal ligges ind i en felt! F.eks

<TABLE>
<TR>
    <TD> <% asp menu %></TD>
</TR>
</TABLE>

Hvordan skal den rigtige kode se ud?
Avatar billede s1000 Nybegynder
28. juni 2003 - 14:09 #1
Kan du uddybe den en smule?
Avatar billede phoenix_2003 Nybegynder
28. juni 2003 - 14:15 #2
Når default.asp hentes ved start, så skal den første menu (menu.asp?ID=1) lægges ind i <TD> feltet! Hvorefter man kan navigere videre i menuen.

Det er IKKE nogen <A href> kode..!
Avatar billede s1000 Nybegynder
28. juni 2003 - 14:22 #3
Altså et spørgsmål om at fortælle default.asp at den netop er id nr. 1 ?

<%
pageId = 1
%>
<TABLE>
<TR>
    <TD><!-- #INCLUDE file="menu.asp" --></TD>
</TR>
</TABLE>

... i din menu.asp kan du så benytte variablen "PageId" som allerede er definere i default.asp - du behøver altså ikke at sende en variabel med i en inkluderet asp-fil.
Avatar billede phoenix_2003 Nybegynder
28. juni 2003 - 14:36 #4
Jeg har i min menu.asp inddelt menuer således:

<% if "1" = Request.Querystring ("id") then %>
.........Menu skrevet i html.............
<% end IF %>

<% if "2" osv.

De virker når jeg bruger kommandoen : munu.asp?ID=1 så kan jeg se den første menu og ....?ID=2 så nummer 2. Det skal jeg bruge til at kunne navigere videre med. Som sagt tidligere, skal menu.asp?ID=1 lægges ind i <td> <% .her. %></td> ved start af default.asp.

Prøv at give et eksempel hvordan du vil gøre det?
(Jeg er ikke så godt til ASP endnu!)
Avatar billede s1000 Nybegynder
28. juni 2003 - 14:45 #5
Helt i orden...

*************************
default.asp: (copy/paste)
*************************
<%
'Inkludér filen menu.asp hvori menuen bygges!
%>
<!-- #INCLUDE file="menu.asp" -->
<%
'Definér din page variabel (Denne kunne f.eks. hedde 2 på en siden "profil")
pageId = 1
%>
<%
response.write sMenu
%>

*************************
menu.asp: (copy/paste)
*************************
<TABLE>
<TR>
    <TD>
    <% if pageId = 1 then %>
        Menupunkt valgt
    <% else %>
        Menupunkt ikke valgt (Du er på en anden side med en anden "pageId")
    <% end if %>
</TR>
</TABLE>

*************************
Håber det kan hjælpe dig lidt igang... det kunne sikkert strikkes mere genialt sammen, men det her skulle da virke.
Avatar billede s1000 Nybegynder
28. juni 2003 - 14:46 #6
Løsningen med request.querystring ville jo netop kræve at dette id stod anført i din URL, hvilket nok er noget besværligt på din første side - og i øvrigt ikke nødvendigt...
Avatar billede s1000 Nybegynder
28. juni 2003 - 14:53 #7
Hov sorry... lidt fejl i min hjælp ... her kommer lige en rettelse til "menu.asp":

*************************
menu.asp: (copy/paste)
*************************
<%
sMenu = "<TABLE>" & vbcrlf & _
        "    <TR>" & vbcrlf & _
        "        <TD>"

if pageId = 1 then
    sMenu = sMenu & _
        "Menupunkt valgt"
else
    sMenu = sMenu & _
        "Menupunkt ikke valgt (Du er på en anden side!)"
end if

sMenu = sMenu & _
        "    </TR>" & vbcrlf & _
        "</TABLE>"
%>


... "sMenu" er altså opbygget som en streng der umiddelbart kan udskrives i default.asp men response.write...

Undskylder hvis du har rodet lidt rundt i sagerne i mellemtiden!
Avatar billede s1000 Nybegynder
28. juni 2003 - 14:58 #8
Og så mangler jeg naturligvis en </TD> - håber jeg selv du kan smide ind i "menu.asp"...
Avatar billede phoenix_2003 Nybegynder
28. juni 2003 - 15:00 #9
Er denne korrekt: <% response.write sMenu %>
Avatar billede phoenix_2003 Nybegynder
28. juni 2003 - 15:07 #10
Dvs. at alle ting i min menu skal være omsluttet af følgende:
"html kode" & vbcrlf & _
Avatar billede phoenix_2003 Nybegynder
28. juni 2003 - 15:28 #11
Beklager s1000, men din kode stopper ved IF sætnigen. SÅ jeg lader sprøgsmålet stå ubesvaret henne!
Avatar billede s1000 Nybegynder
28. juni 2003 - 16:44 #12
Det kan som sagt løses på forskellige måder. Her har jeg bare pakket din menu ned i variablen "sMenu", som altså er inkluderet i menu.asp. Istedet for at skrive HTML blandet med HTML, har jeg bare effektiviseret det lidt ved at skrive det hele i VBScript. Variablen "sMenu" er derefter tilgængelig fra din default.asp.

Den inkluderede fil smelter via <!-- include --> tagget sammen med default.asp og variablerne er derfor tilgængelige på tværs. Hvis du ikke kender så meget til VBScript kan du sagtens skrive det som du selv foreslår:

<TABLE>
<TR>
    <TD> <% asp menu %></TD>
</TR>
</TABLE>

og så bare udskrifte din "asp menu" med <!-- #INCLUDE file="menu.asp" --> - det ville virke fint!

Du kan også teste det eksempel jeg har lavet tidligere ved at samle det hele i en fil... Det virker perfekt:

<%
pageId = 1

sMenu = "<TABLE>" & vbcrlf & _
        "    <TR>" & vbcrlf & _
        "        <TD>"
if pageId = 1 then
    sMenu = sMenu & _
        "Menupunkt valgt"
else
    sMenu = sMenu & _
        "Menupunkt ikke valgt (Du er på en anden side!)"
end if
sMenu = sMenu & _
        "    </TR>" & vbcrlf & _
        "</TABLE>"

response.write sMenu
%>
Avatar billede phoenix_2003 Nybegynder
28. juni 2003 - 17:11 #13
Hvordan ville jeg kunne skifte den ud, når jeg trykker på en link i menuen, og en anden menu skal dukke op med nye links?

F.eks linket: "Hvem er vi" har under menuer: "Vi er", "Her bor vi" og Bliv medlem". Den første linker til en ny menu , og lader de 3 andre dukke op....!

Kort fortalt: Jeg går fra menu.asp?ID=1 til menu.asp?ID=2.. i sammen felt.
Avatar billede s1000 Nybegynder
28. juni 2003 - 17:18 #14
På siden "Hvem er vi" kan du jo definere et nyt pageId (f.eks. 2), på den måde kan menu.asp (når den ellers er udvidet lidt i forhold til det vi allerede har lavet) via de betingede sætninger (if pageId = ?) danne menuen til dig...

Hvis du skal lave nogle undersider dertil, skal du måske arbejde med 2 forskelige typer af idéer - som f.eks.:

pageId (Sider i første niveau)
subPageId (Underliggende sider)

... hvilket naturligvis betyder at din menu.asp kan blive en lang fanden - fordelen er jo så at denne er inkluderet og dermed ikke forstyrer meget i dine sider...
Avatar billede phoenix_2003 Nybegynder
28. juni 2003 - 17:24 #15
Kan du se hvorfor denn ikke virker? (kalder kun: "sMenu")
<%
sMenu = "<TABLE class=Menu CELLSPACING=0 CELLPADDING=0 WIDTH=150>" & vbcrlf & _
        "    <TR>" & vbcrlf & _
        "        <td colspan=11 class=kant></td>" & vbcrlf & _
    "</TR>" & vbcrlf & _
    "<TR>" & vbcrlf & _
    "        <td width=1 class=kant>&nbsp;</td>" & vbcrlf & _
            <td width=3 colspan=4 class=10>&nbsp;</td>" & vbcrlf & _
            <td class=10><a href=test.html target=main class=baeltA></a></td>" & vbcrlf & _
            <td width=3 colspan=4 class=10>&nbsp;</td>" & vbcrlf & _
            <td width=1 class=kant>&nbsp;</td>" & vbcrlf & _
    "</TR>" & vbcrlf & _
        "</TABLE>"
%>
Avatar billede s1000 Nybegynder
28. juni 2003 - 17:33 #16
Yep. Det skyldes at variabler i vbscript skal skrives ind i "", da det jo er en streng. Dem mangler der bare et par stykker af:

<%
sMenu = "<TABLE class=Menu CELLSPACING=0 CELLPADDING=0 WIDTH=150>" & vbcrlf & _
        "    <TR>" & vbcrlf & _
        "        <td colspan=11 class=kant></td>" & vbcrlf & _
    "</TR>" & vbcrlf & _
    "<TR>" & vbcrlf & _
    "        <td width=1 class=kant>&nbsp;</td>" & vbcrlf & _
    "        <td width=3 colspan=4 class=10>&nbsp;</td>" & vbcrlf & _
    "        <td class=10><a href=test.html target=main class=baeltA>aaaa</a></td>" & vbcrlf & _
    "        <td width=3 colspan=4 class=10>&nbsp;</td>" & vbcrlf & _
    "        <td width=1 class=kant>&nbsp;</td>" & vbcrlf & _
    "</TR>" & vbcrlf & _
        "</TABLE>"
%>


... I øvrigt er det lovligt at bruge " i din HTML kode, når du bruger dem i vbscript skal de bare skrives dobbelt, altså ""... Eksempel <table border=""0"""> - bare hvis du nu ikke var klar over dette..
Avatar billede phoenix_2003 Nybegynder
28. juni 2003 - 18:22 #17
Kunne du give et eksempel på hvordan menu skift skulle evt. foregå ??

Og koden "pageID =1" skal strå på manu.asp ?? ikk
Avatar billede s1000 Nybegynder
28. juni 2003 - 19:38 #18
nope...

Hvis vi er enige om at default.asp har id=1 og f.eks. hvem-er-vi.asp er id=2, så skal dette ikke skrives i menu.asp, men derimod de enkelte filer (default.asp og hvem-er-vi.asp).

Menu.asp er altid uændret - den samme fil inkluderes på alle sider.
Avatar billede phoenix_2003 Nybegynder
28. juni 2003 - 19:54 #19
Okay.. hvis jeg sætter <% pageID = 1 %> inde på default.asp, så vil den ikke hente menuen med pageID=1 ? Hov..! Jeg har ikke 2 forskelige asp-side-menuer? jeg har en default.asp der kalder menuid=1 i menu.asp. NÅr jeg så trykekr på en menu link, vil der komme 2 nye frem!

f.eks:          'Hvem er Vi?' -> 'Vi er?'
                                'Her boer vi'
                                'Bliv medlem'

Det hele er i sammen menu.asp
Avatar billede s1000 Nybegynder
28. juni 2003 - 20:00 #20
Godt så... hvis der kun er én fil "default.asp", så kan du evt. gå tilbage i det du selv startede med "querystring"...

Altså istedet for
<% pageId = 1 %>
..så

<%
pageId = request.querystring("id")
if pageId = "" then pageId = 1
%>

Samme resultat... nu skal du bare sørge for at dette id er med i alle links i din menu.asp... eksempelvis i linket til sektionen Hvem er vi:

<%
<a href="default.asp?id=2">Hvem er vi</a>
%>
Avatar billede phoenix_2003 Nybegynder
28. juni 2003 - 20:57 #21
Du siger :
<%
pageId = request.querystring("id")
if pageId = "" then pageId = 1
%>
.. html kode....
<% end if %>

Så skal den sidste afsluttende kode være <% end if %>!

Som omtalt har jeg en default.asp, som indlæser rammer og ander html kode og en menu som indeholder en masser menuer.
Avatar billede phoenix_2003 Nybegynder
28. juni 2003 - 21:28 #22
Koder lidt i det vilde snart..! Kære s1000.. du skal stadigvæk tænke på, at når deault.asp (html koder, tabeller og billeder) hentes første gang, ligesom index.html, så opretter den en masse så ting (kig i forrige parantes), der til skal den første menu?ID=1 hentes i menu.asp. Fra den ville der være muligheder for at gå til andre under menuer f.eks menu?ID=2 (som har ekstra menuer, og skifter den forrige ud) Først nu vil der være mulighed for at hente en html side i en frames. Håber snart jeg har ledt Jer/Dig ind på problemet !!
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