के परिवर्तन पर URL क्वेरीस्ट्रिंग मान को प्रतिस्थापित करें मेरे पास एक ड्रॉपडाउन है जिसमें दोहरी भूमिका थी। उपयोगकर्ता पृष्ठ पर (http://mysite/events/Pages/default.aspx) सीधे आ सकता है और ड्रॉपडाउन का उपयोग कर सकता है या वे पहले खोज कर सकते हैं और ड्रॉपडाउन का चयन करके खोज को फिर से खोज सकते हैं। पहला मामला यूआरएल की तरह http://mysite/events/Pages/default.aspx?hos=Carmel और दूसरे मामले URL होगा http://mysite/events/Pages/default.aspx?kwd=health&type=Events&hos=Carmel यह अभी मैं क्या कर रहा हूँ है, लेकिन यह अजीब बर्ताव करता है और यूआरएल के लिए http://mysite.events/Pages/default.aspx?hos=Crown&hos=Carmelड्रॉपडाउन
इस तरह sth करता है तो अगर ड्रॉप-डाउन से उपयोगकर्ता चयनित कार्मेल पहली बार और फैसला किया कि वह इंडियानापोलिस की तलाश करना चाहता था, फिर इसे या तो इंडियानापोलिस के साथ 'कारमेल' को प्रतिस्थापित करना चाहिए या दूसरे मामले के लिए "& होस = इंडियानापोलिस" के साथ पूरे querstring "& होस = कारमेल" को प्रतिस्थापित करना चाहिए और "? hos = पहले परिदृश्य के लिए कारमेल "साथ"? होस = इंडियानापोलिस "
$(".hospitalDropDown").change(function(e){
var querystring=window.location.search;
var currentURL=$(location).attr('href');
if(location.href.indexOf('?') == -1) {
window.location.href= 'http://mysite/events/Pages/default.aspx'+'?hos='+$(this).val();
}
else{
window.location.href = ($(this).val() == "All Hospitals") ? 'http://mysitesite/events/Pages/default.aspx': location.href +'&hos='+ $(this).val(); }
)};
मुझे कुछ निफ्टी कोड मिला जो क्वेरीस्ट्रिंग को संभालने के लिए रेगेक्स का उपयोग करता है लेकिन मुझे समझ में नहीं आता कि रेगेक्स कैसे काम करता है .. मैं अपने मामले में नीचे की तरह sth का उपयोग कैसे कर सकता हूं? ताकि आप regex बारे में कुछ पता करने की जरूरत नहीं
function replaceQueryString(url,param,value) {
var re = new RegExp("([?|&])" + param + "=.*?(&|$)","i");
if (url.match(re))
return url.replace(re,'$1' + param + "=" + value + '$2');
else
return url + '&' + param + "=" + value;
}
$(".hospitalDropDown").change(function(e) {
window.location.href = replaceQueryString(window.location.href, 'hos', $(this).val());
)};
replaceQueryString
स्निपेट को पाया पहले से ही आप के लिए एक साफ थोड़ा समारोह में पैक किया गया था,:
function replaceQueryString(url,param,value) {
var re = new RegExp("([?|&])" + param + "=.*?(&|$)","i");
if (url.match(re))
return url.replace(re,'$1' + param + "=" + value + '$2');
else
return url + '&' + param + "=" + value;
}
अनदेखी आप वास्तव में सवाल का जवाब - शायद आप स्पष्टीकरण – mplungjan
@mplungjan अच्छा बिंदु के सामने अपने जवाब बढ़ना चाहिए। जैसा कि आपने –
का सुझाव दिया है, मैंने जवाब दिया है। इसके अलावा मैं विंडो बदलने के सुझाव देता हूं। Window.location.href वर्तमान यूआरएल का स्ट्रिंग प्रस्तुति है - इसलिए.href को बदलें लेकिन स्थान ऑब्जेक्ट सेट करें – mplungjan