Beginning Active Server Pages

Query Strings

There will be times when you don't want the user to have to submit a form in order to get information. Take for instance, this site. We have a single ASP page - page.asp, which displays every article or code page on this site. But you don't have to enter an ID of the article in order to display it! Instead, the site uses Query Strings. The Query String is a bit of information added to the end of a URL, and takes one of 2 forms:

http://www.mysite.com/mypage.asp?this+is+some+text

and

http://www.mysite.com/mypage.asp?data1=value&data2=another+value

The latter is the most useful and most widely used.

To access the information sent in the query string, you use the Request.QueryString property... what a surprise! If, for example, you accessed your page with the following url:

/mypage.asp?id=4&title=Example+Title

In your ASP page, you could access this information by using Request.QueryString("id") and Request.QueryString("title"). Take a look at the following example:

<%
Response.Write "ID: " & Request.QueryString("id")
Response.Write " Title: " & Request.QueryString("title")
%>

Save this to a file called querystring.asp, and view it. At the moment, you'll see

ID: Title:

This is because no data has been sent in the Query String. Now try adding ?id=876. You will get

ID: 876 Title:

and finally, add ?id=876&title=My+Title, and you will see

ID: 876 Title: My Title

Query Strings can be especially useful when you need to retreive information from a database, but need a category ID, for example. Then, you can simply use

Set rData = cConn.Execute ("SELECT * FROM Categories WHERE ID=" & Request.QueryString("id"))

You will, by now have noticed some different characters in the query string. For example, + replaces a space. However, when you come to access Request.QueryString it is automatically removed again. If you want to convert a string to a query string, use Server.URLEncode. For example,

Server.URLEncode("my text & something ?")

becomes

my+text+%26+something+%3F

You can even make your forms generate a query string, so that instead of 'posting' its data, it generates a querystring instead. To do this, simply remove the method="POST" text from the form tag.

You might also like...

Comments

About the author

James Crowley

James Crowley United Kingdom

James first started this website when learning Visual Basic back in 1999 whilst studying his GCSEs. The site grew steadily over the years while being run as a hobby - to a regular monthly audien...

Interested in writing for us? Find out more.

Contribute

Why not write for us? Or you could submit an event or a user group in your area. Alternatively just tell us what you think!

Our tools

We've got automatic conversion tools to convert C# to VB.NET, VB.NET to C#. Also you can compress javascript and compress css and generate sql connection strings.

“We better hurry up and start coding, there are going to be a lot of bugs to fix.”