1

i want to pass multiple parameters in my url like this: http://your-url/scriptname?response_code=591&response_description=Unsuccessful&reference_code=354d6728a9c1ef0&transaction_id=1535121422&trans_type=deposit

How do i read them in javascript? how do i read multiple url parameters? Can the getParameterByName() have more than one parameter? Thank you.

Mark Musisha
  • 11
  • 1
  • 2
  • Those params called Query-String params, you can read / parse them by yourself or use some lib that does that for you. `location.search` will be the string that contains all of them – felixmosh Aug 25 '18 at 07:57

3 Answers3

1

it is very easy, you access the parameters through location.search. split the queries, and decode components;

The code below is a self executing function, that processes the current window url as you need, and returns a scoped function that you can call.

let getParameterByName = function() {
    let queries = location.search.substring(1).split('&'),
        processed = {};
    for (let query of queries) {
        let [name, value] = query.split('=');
        processed[decodeURIComponent(name)] = value? decodeURIComponent(value) : '';
    }

    return function(name) {
        if (typeof processed[name] !== 'undefined')
            return processed[name];
        else
            return null; 
    };
}();

Usage example:

var response_code = getParameterByName('response_code'),
   response_description = getParameterByName('response_description');

Note that It will return null if the query does not exist in the url.

1
<script>
    let url = new URL('http://your-url/scriptname?response_code=591&response_description=Unsuccessful&reference_code=354d6728a9c1ef0&transaction_id=1535121422&trans_type=deposit');
    let params = new URLSearchParams(url.search.slice(1));

    let obj = {};
    for(let pair of params.entries()) {
        obj[pair[0]] = pair[1]    //push keys/values to object
    }
    console.log(obj)
</script>

Visit here for more information.

Chukwuemeka Inya
  • 2,575
  • 1
  • 17
  • 23
0
var myUrl = ' http://your-url/scriptname?response_code=591&response_description=Unsuccessful&reference_code=354d6728a9c1ef0&transaction_id=1535121422&trans_type=deposit';

var GetParameters = function (url) {
    var splitParametersFromUrl = url.split('?');
    var spliteParameters = splitParametersFromUrl[1].split('&');

    var param = function (name, value) {
        this.Name = name,
            this.Value = value
    }
    var resualt = new Array();
    for (var i = 0; i < spliteParameters.length; i++) {
        var item = spliteParameters[i].split('=');
        var itemParam = new param(item[0], item[1]);
        resualt.push(itemParam);
    }

    return resualt;
}

var resualt = GetParameters(myUrl);

console.log(resualt);

resualt: Array(5) 0 : param {Name: "response_code", Value: "591"} 1 : param {Name: "response_description", Value: "Unsuccessful"} 2 : param {Name: "reference_code", Value: "354d6728a9c1ef0"} 3 : param {Name: "transaction_id", Value: "1535121422"} 4 : param {Name: "trans_type", Value: "deposit"}

Good Luck

Oyama
  • 123
  • 1
  • 6