theo dõi

Gần nhất :

Thống kê câu hỏi

Chuyên mục : Lập trình
Topic : JavaScript
Hỏi lúc:
Lượt xem: 2,522

Làm thế nào tôi có thể nhận được chuỗi giá trị trong truy vấn JavaScript?

Nguyễn Xuân Ngọc Nguyễn Xuân Ngọc
 09  01  00
09 bình chọn hữu ích bởi Trần Trọng Hiếu, Hoàng Đức Khang Lê Trúc Lâm ... (tất cả)

Query string làm thế nào để tôi lấy được các giá trị chuỗi trong truy vấn (value1, value2...) bằng javascript:

Ex: https://domain.com/field1=value1&field2=value2&field3=value3...

2,522 xem 14 theo dõi 09 hữu ích hỏi –

Bạn biết ai đó có thể trả lời câu hỏi này?. Bạn có thể giúp đỡ bằng cách tìm những người giỏi nhất:

user user user user user

Huỳnh Ngọc Châu Huỳnh Ngọc Châu
 08  00  01
08 bình chọn hữu ích bởi Phan Mộng Hoa, Hồ Cát Linh Nguyễn Lam Bích ... (tất cả)

Nếu không có Jquery

var qs = (function(a) {
    if (a == "") return {};
    var b = {};
    for (var i = 0; i < a.length; ++i)
    {
        var p=a[i].split('=', 2);
        if (p.length == 1)
            b[p[0]] = "";
        else
            b[p[0]] = decodeURIComponent(p[1].replace(/\+/g, " "));
    }
    return b;
})(window.location.search.substr(1).split('&'));

Với 1 url như : ?topic=123&name=query+string

qs["topic"];    // 123
qs["name"];     // query string
qs["nothere"];  // undefined (object)
2,199 xem 08 hữu ích trả lời –
Lê Trúc Cương Lê Trúc Cương
 03  00  01
03 bình chọn hữu ích bởi Lê Xuân Thái, Nguyễn Ánh Tuyết Trần Lục Bình

Bạn có thể sử dụng đoạn mã javascript đơn giản:

function getParameterByName(name) {
    name = name.replace(/[\[]/, "\\[").replace(/[\]]/, "\\]");
    var regex = new RegExp("[\\?&]" + name + "=([^&#]*)"),
        results = regex.exec(location.search);
    return results === null ? "" : decodeURIComponent(results[1].replace(/\+/g, " "));
}

Cách sử dụng:

var prodId = getParameterByName('prodId');
2,201 xem 03 hữu ích trả lời –
Bùi Trí Việt Bùi Trí Việt
 04  00  02
function GetQueryStringParams(sParam)
{
    var sPageURL = window.location.search.substring(1);
    var sURLVariables = sPageURL.split('&');

    for (var i = 0; i < sURLVariables.length; i++)
    {
        var sParameterName = sURLVariables[i].split('=');
        if (sParameterName[0] == sParam)
        {
            return sParameterName[1];
        }
    }
}​

Và đây là cách bạn có thể sử dụng hàm này, giả định rằng URL là:

https://domain.com/field1=value1&field2=value2&field3=value3..

var field1 = GetQueryStringParams('field1');
var field2 = GetQueryStringParams('field2');
var field3 = GetQueryStringParams('field3');
2,193 xem 00 hữu ích trả lời –
Lê Thu Ngọc Lê Thu Ngọc
 00  00  01

Mình thích cách này:

// get an array with all querystring values
// example: var valor = getUrlVars()["valor"];
function getUrlVars() {
    var vars = [], hash;
    var hashes = window.location.href.slice(window.location.href.indexOf('?') + 1).split('&');
    for (var i = 0; i < hashes.length; i++) {
        hash = hashes[i].split('=');
        vars.push(hash[0]);
        vars[hash[0]] = hash[1];
    }
    return vars;
}
2,194 xem 00 hữu ích trả lời –
Tạ Việt Quyết Tạ Việt Quyết
 00  00  01
unction GET() {
        var data = [];
        for(x = 0; x < arguments.length; ++x)
            data.push(location.href.match(new RegExp("/\?".concat(arguments[x],"=","([^\n&]*)")))[1])
                return data;
    }


//ví dụ:
data = GET("id","name","foo");
query string : ?id=3&name=jet&foo=b
returns:
    data[0] // 3
    data[1] // jet
    data[2] // b
or
    alert(GET("id")[0]) // return 3
2,195 xem 00 hữu ích trả lời –
Hồ Ðức Hòa Hồ Ðức Hòa
 00  01  01
function qs(key) {
    var vars = [], hash;
    var hashes = window.location.href.slice(window.location.href.indexOf('?') + 1).split('&');
    for(var i = 0; i < hashes.length; i++)
    {
        hash = hashes[i].split('=');
        vars.push(hash[0]);
        vars[hash[0]] = hash[1];
    }
    return vars[key];
}

Gọi nó từ bất cứ nơi nào trong mã JavaScript:

var result = qs('someKey');
2,196 xem 00 hữu ích trả lời –
Đỗ Chiêu Phong Đỗ Chiêu Phong
 10  00  02

Tôi nghĩ đây là 1 cú pháp tuyệt vời:

;(function ($) {
    $.extend({      
        getQueryString: function (name) {           
            function parseParams() {
                var params = {},
                    e,
                    a = /\+/g,  // Regex for replacing addition symbol with a space
                    r = /([^&=]+)=?([^&]*)/g,
                    d = function (s) { return decodeURIComponent(s.replace(a, " ")); },
                    q = window.location.search.substring(1);

                while (e = r.exec(q))
                    params[d(e[1])] = d(e[2]);

                return params;
            }

            if (!this.queryStringParams)
                this.queryStringParams = parseParams(); 

            return this.queryStringParams[name];
        }
    });
})(jQuery);

Cú pháp là:

var someVar = $.getQueryString('myParam');
2,197 xem 00 hữu ích trả lời –