Robert Lacroix: QUERY_STRING

Hi,
wie kann ich am besten mehrere Parameter über den QUERY_STRING übergeben ? Wie behandele ich ihn danach ?
Danke, Robert Lacroix

  1. Hi,
    wie kann ich am besten mehrere Parameter über den QUERY_STRING übergeben ? Wie behandele ich ihn danach ?
    Danke, Robert Lacroix

    Du musst die Variablen mit einem &-Zeichen trennen.
    z.B.: xz.asp?a=1&b=2&c=6 usw.

    Die Variablen wieder abfragen funktioniert genauso wie bei einer einzelnen Wert.

    CU Roman

    1. Hi,
      wie kann ich am besten mehrere Parameter über den QUERY_STRING übergeben ? Wie behandele ich ihn danach ?
      Danke, Robert Lacroix

      Du musst die Variablen mit einem &-Zeichen trennen.
      z.B.: xz.asp?a=1&b=2&c=6 usw.

      Die Variablen wieder abfragen funktioniert genauso wie bei einer einzelnen Wert.

      CU Roman

      Hi,
      heisst das, dass ich bei xz.asp?a=1&b=2&c=6 die variablen a, b, c abfragen kann ( if a=1 then [...] ) ?
      Danke, Robert

      1. Hi

        heisst das, dass ich bei xz.asp?a=1&b=2&c=6 die variablen a, b, c abfragen kann ( if a=1 then [...] ) ?

        Na gany so einfach ist es leider auch wieder nicht. Du musst schon

        if Request.Querystring("a") = 1 then bla...

        schreiben, sonst gehts nicht.

        CU Roman

        1. Hallo!
          Es gibt da allerdings noch eine kleine Vereinfachung!

          Du kannst auch Request("a") schreiben. Diese Methode hat allerdings auch "Nachteile" oder vielmehr Besonderheiten.
          Wenn Du nur Request("Variablenname") schreibst, dann unterscheidet ASP nicht mehr, ob die Variable aus dem Querystring oder z.B. einem gesendetem Formular kommt. Wenn Du also im Formular und im Querystring eine gleichnamige Variable hast, so solltest Du die korrektere Schreibweise Request.Querystring("") bzw. Request.Form("") benutzen.

          Vielleicht hat das noch etwas geholfen.

          mfg
          JankoW

          P.S.: Noch ein Tip. Wenn Du den ganzen Querystring (ohne Vraiblentrennung) abfragen willst, geht Request.Querystring, dementsprechend kannst Du auch folgendes sagen, um einfach jede Varaible zu prüfen:
          For Each elem in Request.Querystring
          Response.Write(elem & " :" & Request.Querystring(elem) & "<br>")
          Next

          1. Muss man das ganze net mit Request.ServerVariables("QUERY_STRING") abfragen ?

            1. Hallo!
              Es gibt einen entscheidenen Unterschied zwischen

              1.Request.Querystring und
              2.Request.ServerVariables("Query_String")

              Nehmen wir folgendes Beispiel an:
              Du möchtest an eine Seite den Namen einer Person anhängen: "Janko Wellmeier"
              Wenn Du nun folgendes schreibst:
              test.asp?name=Janko Wellmeier
              kann es zu Fehlermeldungen kommen. Diese wird durch das Leerzeichen verursacht (tritt z.B. auch bei ., @ etc. auf).
              Damit Du diesen Text nun allerdings nicht aufwendig nachbearbeiten musst gibt es folgendes Hilfsmittel:
              test.asp?name=<%= Server.URLEncode("Janko Wellmeier") %>

              Hier wir der String für die URL aufgearbeitet.
              Wenn Du nun im nächsten Skript (also test.asp) diese Variable wieder abfragen willst, so reicht Request.Querystring("name") völlig aus.
              Als Ergebnis erhälst Du dann Janko Wellmeier.
              Fragst Du allerdings das ganze mit Server.Variables ab,so wird der String hinter dem "?" _unverändert_ zurückgegeben und Du kannst keine Variable direkt ansprechen.
              Wo jedoch kein Unterschied besteht (meines Wissens nach) ist zwischen Request.Querystring und Request.ServerVariables("Query_String"). DU hast halt nur weniger zu schreiben.

              mfg
              Janko

              P.S.: Ich hoffe es war nicht zu undurchsichtig ;-)

              1. Hier wir der String für die URL aufgearbeitet.
                Wo jedoch kein Unterschied besteht (meines Wissens nach) ist zwischen Request.Querystring und Request.ServerVariables("Query_String"). DU hast halt nur weniger zu schreiben.

                Hmmm.. Request.ServerVariables("Query_String") gibt
                aber den gesamten QueryString zurück, so das man
                ihn manuell noch in die verschieden Variablen zerlegen
                muss.. oder ??
                Das ist dann zumindest wenn man mehrere Parameter
                übergibt doch wieder aufwendiger als wenn man den
                String gleich vorher UrlEncoded.
                Für JavaScript hab ich da mal folgende Funktion verbrochen :

                function QueryString(ID)
                {
                myURL = window.location.search;
                Start= myURL.indexOf("?");
                if (Start==-1) {return("");}
                qString = myURL.substr(Start,myURL.length-Start);
                Start= qString.indexOf(ID+"=");
                if (Start==-1) {return("");}
                Start = Start+ID.length+1;
                qString = qString.substr(Start,qString.length-Start);
                if (qString.indexOf("&")!=-1) {qString=qString.substr(0,qString.indexOf("&"));}
                return(qString);
                }

                aber das möchte ich mir bei ASP denn doch lieber
                ersparen.. :)

                gruss
                Jens

                1. Jo Danke Junx für die Erklärung.
                  Robert.