Affordable Web Hosting with Excellent Customer Support internet connection free month hosting

Javascript Parse Query String Script

This script uses Javascript to parse the query string.

Examples:

TEST1

<a href="echo.html?string=hello&name=person"><strong>TEST1</strong></a>

TEST2

<a href="echo.html?string=goodbye&name=horse"><strong>TEST2</strong></a>

Usage:

Place code on page header (between HEAD tags) of the receiving page.

Code for the Receiving Page:

<html>
<head>
<title>ECHO</title>
<script language="JavaScript">
<!--

/* Webmonkey GET Parsing Module Language: JavaScript 1.0 The parsing of GET queries is fundamental to the basic functionality of HTTP/1.0. This module parses GET with JavaScript 1.0. Source: Webmonkey Code Library (http://www.hotwired.com/webmonkey/javascript/code_library/) Author: Patrick Corcoran Author Email: patrick@taylor.org */
function createRequestObject() { FORM_DATA = new Object(); // The Object ("Array") where our data will be stored. separator = ','; // The token used to separate data from multi-select inputs query = '' + this.location; qu = query // Get the current URL so we can parse out the data. // Adding a null-string '' forces an implicit type cast // from property to string, for NS2 compatibility. query = query.substring((query.indexOf('?')) + 1); // Keep everything after the question mark '?'. if (query.length < 1) { return false; } // Perhaps we got some bad data? keypairs = new Object(); numKP = 1; // Local vars used to store and keep track of name/value pairs // as we parse them back into a usable form. while (query.indexOf('&') > -1) { keypairs[numKP] = query.substring(0,query.indexOf('&')); query = query.substring((query.indexOf('&')) + 1); numKP++; // Split the query string at each '&', storing the left-hand side // of the split in a new keypairs[] holder, and chopping the query // so that it gets the value of the right-hand string. } keypairs[numKP] = query; // Store what's left in the query string as the final keypairs[] data.< for (i in keypairs) { keyName = keypairs[i].substring(0,keypairs[i].indexOf('=')); // Left of '=' is name. keyValue = keypairs[i].substring((keypairs[i].indexOf('=')) + 1); // Right of '=' is value. while (keyValue.indexOf('+') > -1) { keyValue = keyValue.substring(0,keyValue.indexOf('+')) + ' ' + keyValue.substring (keyValue.indexOf('+') + 1); // Replace each '+' in data string with a space. } keyValue = unescape(keyValue); // Unescape non-alphanumerics if (FORM_DATA[keyName]) { FORM_DATA[keyName] = FORM_DATA[keyName] + separator + keyValue; // Object already exists, it is probably a multi-select input, // and we need to generate a separator-delimited string // by appending to what we already have stored. } else { FORM_DATA[keyName] = keyValue; // Normal case: name gets value. } } return FORM_DATA; } FORM_DATA = createRequestObject(); // This is the array/object containing the GET data. // Retrieve information with 'FORM_DATA [ key ] = value'. // --> </script> </head> <body onLoad="createRequestObject();"> <script> var string=FORM_DATA['string']; var name=FORM_DATA['name']; document.write('String is '+string+'<br>Name is '+name); </script> </html>

If for example you were passing href="echo.html?purple=yes&age=34", you would use this instead (in your body):

<script>
var purple=FORM_DATA['purple'];
var age=FORM_DATA['age'];
document.write('Purple is '+purple+'<br>Age is '+age);
</script>

You don't have to name your variables like the items you sent via query string, however, it might be useful to help keep them organized. The following is also valid:

<script>
var a=FORM_DATA['purple'];
var b=FORM_DATA['age'];
document.write('Purple is '+a+'<br>Age is '+b);
</script>