Getting a GET variable with JavaScript

thirtythree

Diamond Member
Aug 7, 2001
8,680
3
0
I'm trying to set a form field to the value of a GET variable (if set) called destination:

function destinationFunction() {
var searchString = document.location.search.split("destination=");
var searchSplit = searchString[1].split("&");
document.getElementById('destination').value = searchSplit[0];
}

This function works fine when destination is set in the URL but "crashes" when it isn't (which is fine, since I don't need it to do anything in that case). I'm sort of a JavaScript noob, so I was wondering if it's a bad idea to do it this way even though the end result is correct. I believe it crashes because searchString[1] doesn't exist when destination isn't set in the URL. Also in the first line, I'm splitting a string that may not exist, and even if it does exist, it may not have "destination=" in it. Is it okay to do this? Obviously I could throw a bunch of conditionals in, but is it even worth worrying about?

Thanks
 

Woosta

Diamond Member
Mar 23, 2008
3,006
0
71
http://paste.zoffix.com/121225...e=four&destination=lol

You should just check for the existence of the element (searchString[1] and searchSplit[0] in this case) - so if either of them do not exist, using the return statement you'll quit the function and no exceptions are thrown.

We could wrap the logic like so..

if (searchString[1]) {
// do something
}

But that forces us to keep indenting and personally I don't like that. So instead:

if (!searchString[1]) { return; }

Use the negation operator so that if it doesnt exist, use return to exit the function.
 

thirtythree

Diamond Member
Aug 7, 2001
8,680
3
0
Originally posted by: Woosta
http://paste.zoffix.com/121225...e=four&destination=lol

You should just check for the existence of the element (searchString[1] and searchSplit[0] in this case) - so if either of them do not exist, using the return statement you'll quit the function and no exceptions are thrown.

We could wrap the logic like so..

if (searchString[1]) {
// do something
}

But that forces us to keep indenting and personally I don't like that. So instead:

if (!searchString[1]) { return; }

Use the negation operator so that if it doesnt exist, use return to exit the function.

Well, easy enough :beer: I don't think I actually need to check for searchSplit[0], 'cause split always creates at least the first item in the array. It doesn't give any JS errors in Safari if I leave it out anyway. Thanks!
 

TeamZero

Senior member
Apr 14, 2004
519
0
0
If it's an option, just use a server side language to write the value of the variable into your javascript.

Change file extension to .asp pr .php whichever is supported and put <%= Request.QueryString("variableName") %> or <?= $_GET['variableName'] ?> in your script respectively.


That said, this post is assuming alot of things, so just ignore it if it's totally wrong
 

troytime

Golden Member
Jan 3, 2006
1,996
1
0
Originally posted by: TeamZero
If it's an option, just use a server side language to write the value of the variable into your javascript.

Change file extension to .asp pr .php whichever is supported and put <%= Request.QueryString("variableName") %> or <?= $_GET['variableName'] ?> in your script respectively.


That said, this post is assuming alot of things, so just ignore it if it's totally wrong

thats what i'd do

don't forget to scrub those variables first though
 
sale-70-410-exam    | Exam-200-125-pdf    | we-sale-70-410-exam    | hot-sale-70-410-exam    | Latest-exam-700-603-Dumps    | Dumps-98-363-exams-date    | Certs-200-125-date    | Dumps-300-075-exams-date    | hot-sale-book-C8010-726-book    | Hot-Sale-200-310-Exam    | Exam-Description-200-310-dumps?    | hot-sale-book-200-125-book    | Latest-Updated-300-209-Exam    | Dumps-210-260-exams-date    | Download-200-125-Exam-PDF    | Exam-Description-300-101-dumps    | Certs-300-101-date    | Hot-Sale-300-075-Exam    | Latest-exam-200-125-Dumps    | Exam-Description-200-125-dumps    | Latest-Updated-300-075-Exam    | hot-sale-book-210-260-book    | Dumps-200-901-exams-date    | Certs-200-901-date    | Latest-exam-1Z0-062-Dumps    | Hot-Sale-1Z0-062-Exam    | Certs-CSSLP-date    | 100%-Pass-70-383-Exams    | Latest-JN0-360-real-exam-questions    | 100%-Pass-4A0-100-Real-Exam-Questions    | Dumps-300-135-exams-date    | Passed-200-105-Tech-Exams    | Latest-Updated-200-310-Exam    | Download-300-070-Exam-PDF    | Hot-Sale-JN0-360-Exam    | 100%-Pass-JN0-360-Exams    | 100%-Pass-JN0-360-Real-Exam-Questions    | Dumps-JN0-360-exams-date    | Exam-Description-1Z0-876-dumps    | Latest-exam-1Z0-876-Dumps    | Dumps-HPE0-Y53-exams-date    | 2017-Latest-HPE0-Y53-Exam    | 100%-Pass-HPE0-Y53-Real-Exam-Questions    | Pass-4A0-100-Exam    | Latest-4A0-100-Questions    | Dumps-98-365-exams-date    | 2017-Latest-98-365-Exam    | 100%-Pass-VCS-254-Exams    | 2017-Latest-VCS-273-Exam    | Dumps-200-355-exams-date    | 2017-Latest-300-320-Exam    | Pass-300-101-Exam    | 100%-Pass-300-115-Exams    |
http://www.portvapes.co.uk/    | http://www.portvapes.co.uk/    |