QUERY_STRING
Robert Lacroix
- asp.net
Hi,
wie kann ich am besten mehrere Parameter über den QUERY_STRING übergeben ? Wie behandele ich ihn danach ?
Danke, Robert Lacroix
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,
wie kann ich am besten mehrere Parameter über den QUERY_STRING übergeben ? Wie behandele ich ihn danach ?
Danke, Robert LacroixDu 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
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
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
Muss man das ganze net mit Request.ServerVariables("QUERY_STRING") abfragen ?
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 ;-)
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
Jo Danke Junx für die Erklärung.
Robert.