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

[ASP] Server.Execute??

Anoniem
None
15 antwoorden
  • —-
  • Volgens mij moet je bij Server.Execute het volledige pad gebruiken, dus van de hoofdmap af als je begrijpt wat ik bedoel.
  • Ik zit even met het idee om overal een ander menu tevoorschijn te toveren.

    Hoe moet ik dat precies zien?
    In mijn optiek verander je niet het menu maar de inhoud ervan.

    Heb je een link waar we het kunnen zien?
  • [quote:12d33dc5ef="Bigfoot"]Volgens mij moet je bij Server.Execute het volledige pad gebruiken, dus van de hoofdmap af als je begrijpt wat ik bedoel.[/quote:12d33dc5ef]
    Ik zal het eens proberen.
    [quote:12d33dc5ef="Wiep Corbier"]Ik zit even met het idee om overal een ander menu tevoorschijn te toveren.

    Hoe moet ik dat precies zien?
    In mijn optiek verander je niet het menu maar de inhoud ervan.

    Heb je een link waar we het kunnen zien?[/quote:12d33dc5ef]
    http://www.goedkoperprinten.nl/beta (werkt alleen nog in IE5/6)
    In de rode balk bovenin kun je het onderdeel kiezen (op dit moment alleen Home en Refillwinkel) en daaronder verschijnt een ander menu..

    Alvast bedankt voor jullie reacties! :D

    Joost
  • Ik ben al iets verder. Op een of andere manier is het me nu gelukt om die menupagina te executen dmv het Server.Execute commando (ik heb Server.Execute "menu/" & strMenu & ".asp" gebruikt), maar nu heb ik het volgende probleem. De files met het menu erin bestaan uit een paar statements die een functie aanroepen die de menulink uitprint. Deze functie die aangeroepen wordt heet PrintSubmenuItem. Maar hij geeft een melding van "Typen komen niet met elkaar overeen". Die PrintSubmenuItem functie staat in een ander bestand die ik geinclude heb, en ook heb ik geprobeerd de functie in de menufile zelf te zetten. Maar dat werkt helaas allemaal niet. Steeds die "Typen komen niet met elkaar overeen" error.. Ik zal nog wel wat experimenteren, maar als iemand de oplossing weet houd ik mij aanbevolen :D..
    Alvast bedankt weer!

    Joost
  • Ik denk dan dat er volgende aan de had is: je probeert -bijvoorbeeld- een numerieke waarde met een alfanumerieke waarde te vergelijken.
  • [quote:afe04eadf0="Wiep Corbier"]Ik denk dan dat er volgende aan de had is: je probeert -bijvoorbeeld- een numerieke waarde met een alfanumerieke waarde te vergelijken.[/quote:afe04eadf0]
    Nee, want eerst werkte die functie wel. Ik heb er verder niks aan veranderd, behalve dat ik 'm aanroep met Server.Execute in plaats met zo'n include file tag. :-?
    Maar bedankt voor je reactie.. :D

    Joost
  • Het lukt echt niet op een of andere manier. Ik zal alles even op een rijtje zetten:
    1. Als ik dat menu include middels zo'n "include file"-tag werkt het uitstekend. Die PrintSubmenuItem-sub die aangeroepen wordt staat dan in een andere file die ook geinclude is (één pagina hoger als het ware).
    2. Als ik dat menu include middels Server.Execute, en de PrintSubmenuItem-sub staat in dezelfde include file als bij punt 1 (die dus één pagina hoger is geinclude) krijg ik een "Typen komen niet overeen"-error, of in het Engels "Type mismatch".
    3. Als ik dan die PrintSubmenuItem-sub naar hetzelfde bestand verplaats als het menu, dan krijg ik een "Sytaxis-fout"; deze fout zou moeten zitten in de declaratie van de PrintSubmenuItem-sub, terwijl deze precies hetzelfde wel werkt bij punt 1. Hieronder de code van de PrintSubmenuItem-sub, zodat jullie kunnen zien dat die klopt ;):
    [code:1:b5fc533a64]Sub PrintSubmenuItem(strURL,strDesc,strStatus)
    Response.Write "<tr><td class=" & DQ & "submenuItem" & DQ & "><a href=" & DQ & _
    strURL & DQ & " target=" & DQ & "_top" & DQ & " onMouseOver=" & DQ & _
    "return stat('" & strStatus & "');" & DQ & " onMouseOut=" & DQ & _
    "return stat('');" & DQ & " class=" & DQ & "menu" & DQ & ">" & _
    strDesc & "</a></td></tr>"
    End Sub[/code:1:b5fc533a64]
    Niemand ideeën?

    Joost
  • Er zit een verschil in wat jij denkt dat [i:3f9d4b7fbe]Server.Execute [/i:3f9d4b7fbe]doet en wat [i:3f9d4b7fbe]Server.Execute[/i:3f9d4b7fbe] werkelijk doet.

    [i:3f9d4b7fbe]Include[/i:3f9d4b7fbe] is een SSI functionaliteit en staat in zoverre los van ASP. Eerst worden alle files samengevoegd en daarna gaan ze door de parser. Dat is ook de reden waarom het in dit geval gewoon werkt. Je definieert netjes je Sub en roept deze een paar keer aan.

    De [i:3f9d4b7fbe]execute [/i:3f9d4b7fbe]methode voert een ander ASP bestand op de server uit en retourneert daarna naar het 'calling' script. Eventuele gegenereerde output wordt netjes naar de client gestuurd, maar er wordt dus niets in je script 'ingevoegd'. Eigenlijk kun je het dus zien als het aan elkaar knopen van losstaande scripts (i.t.t. samenvoegen en dan pas uitvoeren).

    Oplossing? Natuurlijk is die er ook als je uitgaat van bovenstaande.
      [*:3f9d4b7fbe]Maak een include bestand waarin je je functies/subs declareert (de Sub definitie). Deze heb je als ik je goed begrijp al. [*:3f9d4b7fbe]Maak meerdere asp bestanden aan waarin je het bestand uit 1 include en de verschillende aanroepen van de sub zet (je menu-output definitie) [*:3f9d4b7fbe]Maak het uiteindelijke "calling" script welke conditioneel een bestand uit 2 aan [i:3f9d4b7fbe]server.execute[/i:3f9d4b7fbe] voert. [/list:o:3f9d4b7fbe] Succes.
  • [quote:f47dad223b="Annie"]Er zit een verschil in wat jij denkt dat [i:f47dad223b]Server.Execute [/i:f47dad223b]doet en wat [i:f47dad223b]Server.Execute[/i:f47dad223b] werkelijk doet.

    [i:f47dad223b]Include[/i:f47dad223b] is een SSI functionaliteit en staat in zoverre los van ASP. Eerst worden alle files samengevoegd en daarna gaan ze door de parser. Dat is ook de reden waarom het in dit geval gewoon werkt. Je definieert netjes je Sub en roept deze een paar keer aan.

    De [i:f47dad223b]execute [/i:f47dad223b]methode voert een ander ASP bestand op de server uit en retourneert daarna naar het 'calling' script. Eventuele gegenereerde output wordt netjes naar de client gestuurd, maar er wordt dus niets in je script 'ingevoegd'. Eigenlijk kun je het dus zien als het aan elkaar knopen van losstaande scripts (i.t.t. samenvoegen en dan pas uitvoeren).

    Oplossing? Natuurlijk is die er ook als je uitgaat van bovenstaande.
      [*:f47dad223b]Maak een include bestand waarin je je functies/subs declareert (de Sub definitie). Deze heb je als ik je goed begrijp al. [*:f47dad223b]Maak meerdere asp bestanden aan waarin je het bestand uit 1 include en de verschillende aanroepen van de sub zet (je menu-output definitie) [*:f47dad223b]Maak het uiteindelijke "calling" script welke conditioneel een bestand uit 2 aan [i:f47dad223b]server.execute[/i:f47dad223b] voert. [/list:o:f47dad223b] Succes.[/quote:f47dad223b] Dank je wel voor je antwoord. Ik snap nu het concept van Server.Execute ook wat beter. Maar eigenlijk is wat ik had hetzelfde als wat jij beschrijft, behalve dan dat ik de Sub niet in een include had gezet maar in het bestand wat door Server.Execute wordt aangeroepen zelf. Maar ik ga nog wel een beetje proberen, je hebt me iig op het goede spoor gezet :D. Joost
  • Nou ja, het probleem is niet zozeer dat de sub in het bestand staat wat je aanroept met de server.execute, het probleem zat erin dat je de de aanroep van de sub niet in diezelfde file hebt zitten, maar in het bestand waar de server.execute in staat. En in die file is de sub helemaal niet bekend (dat verklaart ook meteen de foutmelding).

    Maar het zal nu wel lukken.
  • [quote:4356f512ab="Annie"]Nou ja, het probleem is niet zozeer dat de sub in het bestand staat wat je aanroept met de server.execute, het probleem zat erin dat je de de aanroep van de sub niet in diezelfde file hebt zitten, maar in het bestand waar de server.execute in staat. En in die file is de sub helemaal niet bekend (dat verklaart ook meteen de foutmelding).

    Maar het zal nu wel lukken.[/quote:4356f512ab]
    Hmm, misschien een gevolg van mijn onduidelijke omschrijving, want ik denk dat je het verkeerd hebt begrepen (of ik begrijp het weer verkeerd :lol:). De Sub en de "sub-call" stonden al allebei in dezelfde file, toen ik het probeerde. Ik heb nu alles gedaan wat jij hebt gezegd, maar ik krijg nog steeds die syntax error waar ik die sub declareer :-?. Ik snap er echt geen hout meer van :(. Alles klopt, want de functie is exact overgenomen uit de oude situatie. Ook heb ik 'm nog doorgespit naar eventuele fouten.
    Ik heb ook geprobeerd Option Explicit erin te zetten, maar dan krijg ik op de plek waar ik Option Explicit zet ook een error: "statement verwacht" ofzo :-?.
    Ik hoop dat je nog ideeën hebt.. :D

    Joost
  • Oke, nu heb je mij aan het twijfelen gebracht ;)

    Heb even een testje gedaan en het werkt toch echt zoals ik het eerder zei. Even een simpel voorbeeldje om het (hopelijk) te verduidelijken:

    [b:32cc920ba9]index.asp[/b:32cc920ba9]
    [code:1:32cc920ba9]
    <%
    if request.querystring = "1" then
    Server.Execute "d_menu_1.asp"
    else
    Server.Execute "d_menu_2.asp"
    end if
    %>
    [/code:1:32cc920ba9]

    [b:32cc920ba9]d_menu_1.asp[/b:32cc920ba9]
    [code:1:32cc920ba9]
    <!–#include file="i_menu.asp"–>
    <%
    PrintSubmenuItem "http://www.devguru.com", "DevGuru", "DevGuru"
    PrintSubmenuItem "http://www.4guysfromrolla.com", "4GuysFromRolla", "4GFR"
    %>[/code:1:32cc920ba9]

    [b:32cc920ba9]d_menu_2.asp[/b:32cc920ba9]
    [code:1:32cc920ba9]
    <!–#include file="i_menu.asp"–>
    <%
    PrintSubmenuItem "http://forum.computertotaal.nl/phpBB2", "C!T forum", "C!T"
    %>[/code:1:32cc920ba9]

    [b:32cc920ba9]i_menu.asp[/b:32cc920ba9]
    [code:1:32cc920ba9]
    <%
    Sub PrintSubmenuItem(strURL,strDesc,strStatus)
    Response.Write "<p class='submenuItem'>" _
    & "<a href='" & strURL & "' target='_top'" & _
    & " onMouseOver=""return stat('" & strStatus & "');""" _
    & " onMouseOut=""return stat('');"" class='menu'>" _
    & strDesc & "</a></p>"
    End Sub
    %>[/code:1:32cc920ba9]

    Je kan dus in dit voorbeeld
  • Bedankt weer voor je duidelijke uitleg. Ik denk dat ik al weet waar de fout zit..
    [quote:bb9ccaf7e9="Annie"]p.s.
    [quote:bb9ccaf7e9]Ik heb ook geprobeerd Option Explicit erin te zetten[/quote:bb9ccaf7e9]foei ;) die moet je sowieso [b:bb9ccaf7e9]altijd [/b:bb9ccaf7e9]gebruiken natuurlijk.[/quote:bb9ccaf7e9]
    Weet ik :D. Maar toen ik begon met de site was ik een beetje lui ;), en nu krijg ik hem er niet in omdat ik dan die error krijg.
  • Ok, bedankt allemaal, het is gelukt! Ik had met m'n stomme hoofd die menufile nog ergens anders ge-include staan, en daardoor kwamen die errors. Maar nu werkt het allemaal! :D

Beantwoord deze vraag

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