2017-05-20 1 views
-1

Ich habe dies für eine lange Zeit jetzt versucht. Ich bekomme einen Wert mit der Eingabe und ich versuche, die Seite umzuleiten, indem ich einen neuen Parameter hinzufüge und nur Dummy-Wert 23 vorerst an den Parameter number_range übergebe.Javascript-Fenster verlagert hinzufügen unerwünschten Parameter

Am Ende fügt es jedoch im window.location-Teil den Parameter myurl /? E = 1 immer am Anfang ein. Danach wird es richtig umgeleitet. Wie behebe ich das? Bitte Hilfe.

Auch ich bin neu in Javascript so bitte verzeihen Sie meinen schlechten Code und mögliche Fehler.

<h3>Price Filter</h3> 

<input id="number_range" type="text"/><br> 
<button onclick="filter_start(this,'gt'); return true;">Greater or equal</button><br> 
<button onclick="filter_start(this,'ltt'); return false;">Less or equal</button> 


<script language="javascript" type="text/javascript"> 

    var filter_start = function(el, indicator){ 

     setGetParameter("number_range", 23); 
    } 

    function setGetParameter(paramName, paramValue) 
{ 
    var url = window.location.href; 
    var hash = location.hash; 
    url = url.replace(hash, ''); 
    if (url.indexOf("?") >= 0) 
    { 
    var params = url.substring(url.indexOf("?") + 1).split("&"); 
    var paramFound = false; 
    params.forEach(function(param, index) { 
     var p = param.split("="); 
     if (p[0] == paramName) { 
     params[index] = paramName + "=" + paramValue; 
     paramFound = true; 
     } 
    }); 
    if (!paramFound) params.push(paramName + "=" + paramValue); 
    url = url.substring(0, url.indexOf("?")+1) + params.join("&"); 
    } 
    else 
    url += "?" + paramName + "=" + paramValue; 

    window.location.href = url + hash; 
} 

EDIT: Sorry, es lief einfach an einem anderen Ort und das scheint zu funktionieren. Ich denke, das Problem liegt dann in Djangos Admin-Template oder Jquery.

+0

Oh, und ich bin ein Framework namens Django und ich habe diesen Code in ihrer Admin-Vorlage verwendet, wenn es hilft .. –

Antwort

0

Scheint, dass Sie einige geschweiften Armschienen vermissen.

var filter_start = function(el, indicator) { 
    setGetParameter("number_range", 23); 
} 

function setGetParameter(paramName, paramValue) { 
    var url = window.location.href; 
    var hash = location.hash; 
    url = url.replace(hash, ''); 
    if (url.indexOf("?") >= 0) { 
    var params = url.substring(url.indexOf("?") + 1).split("&"); 
    var paramFound = false; 
    params.forEach(function(param, index) { 
     var p = param.split("="); 
     if (p[0] == paramName) { 
     params[index] = paramName + "=" + paramValue; 
     paramFound = true; 
     } 
    }); 
    if (!paramFound) params.push(paramName + "=" + paramValue); 
    url = url.substring(0, url.indexOf("?") + 1) + params.join("&"); 
    } else { 
    url += "?" + paramName + "=" + paramValue; 
    window.location.href = url + hash; 
    } 
} 
+0

Danke, aber auch wenn ich laufe Code: Ich habe Ihren Code sehr leicht in Ordnung gebracht Das erste Mal, wenn ich auf den Button klicke, leite ich mich auf myurl /? e = 1 um und erst nach dem zweiten Klick leite ich mich auf myurl /? e = 1 & number_range = 23 um –

Verwandte Themen