Sorgu dizesi parametresi ve javascript kullanarak değerleri (jQuery) almak nasıl?

5 Cevap php
<a class="clickme" href="test.php?id=100&status=pending&time=2009" id="p_100">Click me</a>

$('.clickme').click(function(event) {
event.preventDefault();
var stringId = $(this).attr("id");
    var mId = stringId.substring(2)
....

Ben çapa elemanın kimliğini kullanarak id değerini alabilirsiniz. Ben href doğrudan almak mümkün olması gerektiğini düşünüyorum. Peki nasıl HREF (url sorgu dizesi) den id ve statü değerini almak mı?

Ben jQuery kullanıyorum.

Yardımınız için teşekkür ederim.

UPDATE: Also how do I can get all of the URL value .. i.e. "test.php?id=100&blah=blah"?

5 Cevap

Bu kod:

function querySt(ji) {
    hu = $(".clickme").attr("href");
    gy = hu.split("&");
    for (i=0;i<gy.length;i++) {
        ft = gy[i].split("=");
        if (ft[0] == ji) {
            return ft[1];
        }
    }
}

Kullanmak için:

document.write(querySt("id"));
document.write(querySt("status"));

Lütfen 'update' Cevap:

http://ilovethecode.com/Javascript/Javascript-Tutorials-How_To-Easy/Get_Query_String_Using_Javascript.shtml

var stringId = $(this).attr("id"); // this will return p_100
var stringId = $(this).attr("id").split('_')[1]; // this will return 100

var attr= $(this).attr("href"); // this will return all href attribute value

UPDATE

//href="test.php?id=100&status=pending&time=2009"
var attrFromAnchor= $(this).attr("href").split('?')[1].split('&')[0].split('=')[1]; // returns 100

There are a lot of good solutions here but I figured I'd post my own. Here's a quick little function I threw together which will parse a query string in the format from either window.location.search or from a provided search string value;

Eğer şeklinde başvurmak böylece o id değer çiftleri hash döndürür:

var values = getQueryParams();
values['id']
values['blah']

İşte kod:

/*
 This function assumes that the query string provided will
 contain a ? character before the query string itself.
 It will not work if the ? is not present.

 In addition, sites which don't use ? to delimit the start of the query string
 (ie. Google) won't work properly with this script.
 */
function getQueryParams( val ) {
	//Use the window.location.search if we don't have a val.
	var query = val || window.location.search;
	query = query.split('?')[1]
	var pairs = query.split('&');
	var retval = {};
	var check = [];
	for( var i = 0; i < pairs.length; i++ ) {
		check = pairs[i].split('=');
		retval[decodeURIComponent(check[0])] = decodeURIComponent(check[1]);
	}

	return retval;
}

Yapabileceğiniz ayrıştırma dize olmadan URL'den sorgu dizesinin değerini almak için:

window.location.search.substr(1)

Eğer önce sayfanın adını isterseniz? hala küçük bir dize ayrıştırma yapmak gerekiyor:

var path = window.location.pathname.replace(/^.*\/(.*)$/,'$1');
var query = path + window.location.search;
//If your URL is http://www.myserver.com/some/long/path/big_long%20file.php?some=file&equals=me
//you will get: big_long%20file.php?some=file&equals=me

Hope this helps! Cheers.

İşte özlü bir sorgu dizesi TÜM ad / değer çiftleri almak için (henüz tam) uygulaması bulunuyor:

function getQueryParams(qs) {
    qs = qs.split("+").join(" ");
    var params = {};
    var tokens;

    while (tokens = /[?&]?([^=]+)=([^&]*)/g.exec(qs)) {
        params[decodeURIComponent(tokens[1])]
            = decodeURIComponent(tokens[2]);
    }

    return params;
}

//var query = getQueryParams(document.location.search);
//alert(query.foo);

JQuery için gerek yok, bu çözüm, tüm tarayıcılarda çalışır:

function querySt(ji)
{
    hu = window.location.search.substring(1);
    gy = hu.split("&");
    for (i=0;i<gy.length;i++) {
    ft = gy[i].split("=");
    if (ft[0] == ji) {
    return ft[1];
    }
    }
    return "";
}