Tengo un menú desplegable que tiene un doble rol. El usuario puede acceder a la página (http://mysite/events/Pages/default.aspx) directamente y utilizar el menú desplegable o primero puede hacer una búsqueda y el filtro de la búsqueda resultó más mediante la selección del menú desplegable. Primera URL caso será como http://mysite/events/Pages/default.aspx?hos=Carmel y URL segundo caso http://mysite/events/Pages/default.aspx?kwd=health&type=Events&hos=Carmel Esto es lo que estoy haciendo en este momento, pero se comporta extraño y hace algo como esto para url http://mysite.events/Pages/default.aspx?hos=Crown&hos=Carmelreemplazar el valor de la cadena de URL en el cambio del menú desplegable
Así que si seleccionado por el usuario Carmel en el menú desplegable de la primera vez y decidió que quería buscar Indianápolis, entonces debería reemplazar 'Carmel' con indianapolis o reemplazar toda la cadena de caracteres "& hos = Carmel" con "& hos = Indianapolis" para el segundo caso y "? hos = Carmel "con"? Hos = Indianápolis "para el primer escenario
$(".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(); }
)};
Encontré un código ingenioso que usa expresiones regulares para manejar la cadena de consulta pero no entiendo cómo funciona la expresión regular ... ¿Cómo puedo usar algo como abajo en mi caso?
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;
}
se pasa por alto que en realidad respondieron a la pregunta - quizás usted debe mover su respuesta en la delantera de la explicación – mplungjan
@mplungjan Buen punto. Reorganicé mi respuesta como sugirió –
También sugiero cambiar window.location ya que window.location.href es la representación de la cadena de la url actual - así que cambie the.href pero establezca el objeto de ubicación – mplungjan