Op deze website gebruiken we cookies om content en advertenties te personaliseren, om functies voor social media te bieden en om ons websiteverkeer te analyseren. Ook delen we informatie over uw gebruik van onze site met onze partners voor social media, adverteren en analyse. Deze partners kunnen deze gegevens combineren met andere informatie die u aan ze heeft verstrekt of die ze hebben verzameld op basis van uw gebruik van hun services. Meer informatie.

Akkoord

Vraag & Antwoord

Webprogrammeren & scripting

*.js en ASP

None
5 antwoorden
  • Hallo,

    Ik ben bezig met het maken van een website waar vier verschillende types gebruikers gedefineerd zijn. Elk van deze gebruiker heeft zijn eigen menu. Dit menu is gemaakt met een DHTML builder (*.js). Maar nu zit ik met het volgende probleem. Hoe kan ik er voor zorgen dat bijvoorbeeld wanneer een fleetmanger inlogt, dat deze dan het *.js menu krijgt die voor dit type gebruiker bestemd is.

    Ik denk zelf dat dit al in het login pagina gedefinieerd moet staan welk javascript menu er geladen moet worden voor deze gebruiker. Maar ik weet niet precies hoe ik dit voor elkaar kan krijgen.

    Hieronder heb ik een gedeelte van de ASP code afgebeeld:

    Set oNodeList = oXMLIn.GetElementsByTagname("USERTYPE")
    oNodeList.reset
    Set oCurrNode = oNodeList.NextNode()
    Session("*****_USERTYPE") = oCurrNode.Text 'Request("name")
    Set oNodeList = oXMLIn.GetElementsByTagname("USERCODE")
    oNodeList.reset
    Set oCurrNode = oNodeList.NextNode()
    Session("*****_USERCODE") = oCurrNode.Text
    Set oNodeList = oXMLIn.GetElementsByTagname("ISDRIVER")
    oNodeList.reset
    Set oCurrNode = oNodeList.NextNode()
    Session("*****_ISDRIVER") = oCurrNode.Text
    Set oNodeList = oXMLIn.GetElementsByTagname("ISFLEETMANAGER")
    oNodeList.reset
    Set oCurrNode = oNodeList.NextNode()
    Session("*****_ISFLEETMANAGER") = oCurrNode.Text
    If (Session("*****_USERTYPE") = "CUSTOMER") Then
    Response.Redirect("***pagina.asp?login=true")
    Else
    Response.Redirect("menu.asp")
    End If
    Response.End
    Else
    'error in financials…
    Response.Write("Gebruiker/wachtwoord combinatie niet gevonden")
    Response.End
    End If
    Else
    Response.Write("Geen reactie vanuit ******")
    Response.End
    End If
    %>

    In de tekst hierboven heb ik enkele namen veranderd in wat sterretjes. Aangezien hier een bedrijfsnaam moet staan.

    Een Fleetmanager (beheerder) moet het volgende menu te zien krijgen:

    \beheerder\stmenu.js

    Hoe kan ik dit het beste aanpakken?

    Daniel
  • Je kan op basis van de rol het juiste bestand toevoegen aan de response. In pseudocode:
    [code:1:d4ba9cc698]
    If Rol_A Then
    bestand = "menu1.js"
    Else If Rol_B Then
    bestand = "menu2.js"
    End If

    Response.Write "<script src='" & bestand & "' type='text/javascript'></script>"
    [/code:1:d4ba9cc698]
    [size=9:d4ba9cc698](Maar in het geval van deze keuze is het makkelijker om de naam van de rol op te nemen in de bestandsnaam van het menu. Dat bespaart je wat if-then-else constructies.)[/size:d4ba9cc698]

    Of de inhoud van een menu-bestand inlezen via het FileSystemObject en de tekst rechtstreeks toevoegen aan de pagina.
    [code:1:d4ba9cc698]
    ' jsTekst is een variabele die gevuld is via het FSO

    Response.Write "<script type='text/javascript'>" & jsTekst & "</script>"
    [/code:1:d4ba9cc698]

    Of het js-bestand dynamisch genereren.
    [code:1:d4ba9cc698]
    <script src="menu.js.asp" type="text/javascript"></script>
    [/code:1:d4ba9cc698]
    Dit asp bestand geeft dan alleen js-code terug die is toegespitst op de rol.


    Meer dan genoeg mogelijkheden dus. Uiteraard ook in de pagina's die je aanroept via het menu nog even controleren op de rol; ik neem tenminste aan dat de pagina's die niet beschikbaar zijn voor een bepaalde rol ook afgeschermd moeten zijn voor de overige gebruikers.
  • Hallo,

    Ik heb al enige hulp gehad met het aanroepen van *.js menu bestanden vanuit ASP. Maar nu het volgende. In de website gebruik ik een iframe om daar mijn login pagina in te laden (ASP). Bij het inloggen wordt er bepaald welk menu er geladen moet worden. Alleen hoe krijg ik het zo dat het menu buiten het iframe geladen wordt?

    Daniel Bolt
  • Na een login kan je de complete 'site' herladen; dus menu, overige content en inhoud iframe. Indien nodig kan je waarden (bijv de juiste menu-file, bron voor iframe) in de Session bijhouden en zo je pagina weer opbouwen.

    Hoe de rest van je pagina eruit ziet weet ik niet, dus je zal even wat moeten proberen wat het best werkt. Makkelijkste optie lijkt mij om je login-form te laten posten met als target de hoofdpagina (en dus niet [i:e4fb7c5960]in[/i:e4fb7c5960] je iframe).

    p.s. :
    [quote:e4fb7c5960="danielbolt"]Ik heb al enige hulp gehad met het aanroepen van *.js menu bestanden vanuit ASP.[/quote:e4fb7c5960]
    Als dit betekent dat je ruim voor mijn antwoord al via andere wegen een oplossing had gekregen (of zelf hebt gevonden), dan zou ik het wel correct vinden om dat even te melden in het topic.
  • [quote:43d0ba454d]

    Als dit betekent dat je ruim voor mijn antwoord al via andere wegen een oplossing had gekregen (of zelf hebt gevonden), dan zou ik het wel correct vinden om dat even te melden in het topic.

    [/quote:43d0ba454d]

    Mijn excuses, ik was vergeten te melden dat ik met één van jou oplossingen verder ben gegaan! Annie bedenkt!

    Dus ik moet mijn gehele pagina opnieuw opbouwen. Oke, misschien is dat wel de juiste oplossing. ik ga het direct even proberen.

    Daniel

Beantwoord deze vraag

Dit is een gearchiveerde pagina. Antwoorden is niet meer mogelijk.