2010-11-24 26 views

Répondre

1

Voici une autre approche. Le code est un peu plus, comme la chaîne de recherche est analysé pour créer un mappage des paramètres puis construire à nouveau ensemble (cela devrait fonctionner avec tous les paramètres alors):

var searchTerms = document.location.search.substr(1).split('&'); 
var parameters = {}; 
for(var i = 0; i < searchTerms.length; i++) { 
    var parts = searchTerms[i].split('=', 2); 
    parameters[parts[0]] = parts[1]; 
} 

parameters['opr'] = 'sales-' + document.getElementById('selectboxID').value; 

searchTerms = []; 
for(var key in parameters) { 
    if(parameters.hasOwnProperty(key)) { 
     searchTerms.push(key + '=' + parameters[key]); 
    } 
} 

document.location.search = searchTerms.join('&'); 

Référence: document.location

Working Demo (J'utilise jQuery seulement pour la démonstration, le code réel est celui indiqué ci-dessus)

+0

merci, cela a fonctionné et belle démo aussi, merci encore –

0
Url = document.location.href.split("?"); 
dropdownval = document.getElementByID('dropdown/selectbox id tag').value; 
document.location = Url[0]+'?page=index&opr=sales-'+dropdownval+'&page=1'; 

C'est le code que vous pouvez utiliser pour y parvenir.

+0

merci, mais j'ai besoin de meilleure solution car les valeurs de "page" et "pageno" pourraient changer –

0

Sinon, vous pouvez faire remplacer:

var val = 'sales-' + document.getElementById('selectBox').value; 
document.location.href = document.location.href.replace(/([?&]opr=)([^&]+)/, '$1' + val); 

Remplace le paramètre opr par la valeur (val) de #selectBox.

Je crois cependant que solution de @Felix Kling est beaucoup plus générique. Juste poster pour donner un indice à une solution simple, aussi.

+0

merci pour la solution plus simple, et oui vous avez raison "@Felix Kling "solution est beaucoup plus générique –