Matt
Matt

Reputation: 1

Get a value from URL and create a Javascript function

I am new on this website, and I am also new at Javascript. What I would do is get a value from a link, eg: http://bricks.couponmicrosite.net/JavaBricksWeb/LandingPage.aspx?O=107905&C=MF&CPT=qwbc74g7HdLtKVVQ1oNe&P=test&tqnm=td3ffdn764156741

I need to take this value: O=107905, if it is only one code I need to run a file (file A),

if it look like this: O=107905~107906, then I need to run a different file (file B).

What I thought is create a function with javascript where if it is (~) is missing, then will be used the file A, if there is one or more than one of (~) then the file B will start to work.

Many thanks in advance!

Upvotes: 0

Views: 57

Answers (3)

Joseph Marikle
Joseph Marikle

Reputation: 78520

Well. We really do encourage you to provide your own code first before providing solutions, but this is a fairly simple problem in javascript. Here's my take on it.

The first problem you have to solve is actually getting the query string parameters in a meaningful format. Here I create an object that uses the query string keys as the object keys (IE 9+ only because of the forEach)

var tmpObject = {}
location.search.substr(1).split('&').forEach(function(item){
    var o = item.split('=');
    tmpObject[o.shift()] = o.shift();
});

Then it's just a matter of making sure the query string contained the target object (in this case "O") and determine if there is more than one.

if(tmpObject.hasOwnProperty('O') && tmpObject.O.split('~').length > 1) {
    console.log('return multiple files');
} else {
    console.log('return one file');
}

Upvotes: 2

gurvinder372
gurvinder372

Reputation: 68393

Try this

var url = "http://bricks.couponmicrosite.net/JavaBricksWeb/LandingPage.aspx?O=107905&C=MF&CPT=qwbc74g7HdLtKVVQ1oNe&P=test&tqnm=td3ffdn764156741";
var search = url.substring(url.indexOf("?")+1);

var map={};
search.forEach(function(val){var items=val.split("="); map[items[0]]=items[1];});

if (map["O"].indexOf("~") != -1)
{
  //O value has ~ in it
}
else
{
  //O has no ~ in it 
}

Upvotes: 1

Titozzz
Titozzz

Reputation: 189

Possible solution to get the paramter would be there : How to get the value from the GET parameters?

Once you have the parameter value, you can for sure look if you find '~' with String.prototype.indexOf.

String.prototype.indexOf returns the position of the string in the other string. If not found, it will return -1.

Upvotes: 0

Related Questions