2017-02-28 1 views
0

Ich benutze jQuery 1.12 und mit thsi-Plugin - https://plugins.jquery.com/query-object/, um mir zu helfen, ersetzen/Hinzufügen eines Parameters in meiner Abfrage-Zeichenfolge, die Ich mache derzeit durch den Aufruf der Logikjquery.query-Objekt-Plugin gibt mir Probleme beim Versuch, einen Parameter in der URL-Abfragezeichenfolge zu ersetzen

new_url = $.query.set("order_by", data_val).toString() 
window.location.href = new_url 

Diese Logik ist jedoch Verschrauben meiner Abfrage Zeichenfolge für Parameter, die ich nicht berühre. Zum Beispiel, wenn ich die unten URL taht haben

http://myurl?utf8=✓&first_name=&last_name=&search=Token&x=0&y=0 

die obige Logik Aufruf wendet sich die URL in

?utf8=%E2%9C%93&first_name&last_name&search=Token&x=0&y=0&order_by=name 

Hinweis die "first_name =" reduziert wurde, nur "first_name". Gibt es ein anderes jQuery-Plugin, das ich benutzen sollte? Grundsätzlich möchte ich einen Parameter ersetzen/hinzufügen, ohne die anderen Parameter zu berühren.

+0

Es anhängen tatsächlich standardisieren Parameter. – Adapter

+0

ok, aber das ist Verschrauben Parameterverarbeitung auf meinem Server Ende der Dinge –

+0

Überprüfen Sie meine Antwort unten – Adapter

Antwort

0

Das Plugin ist Serialisierungsparameter neben dem Anhängen an neue Parameter an die URL. Wenn Sie nicht wollen, dass Verhalten, das Sie unter Code versuchen können neue Parameter

var url = "http://myurl?utf8=✓&first_name=&last_name=&search=Token&x=0&y=0"; 
 

 
var addParam = function(url, params) { 
 
    for (var i in params) { 
 
    var char = url.indexOf('?') > -1 ? '&' : '?'; 
 
    url += char + i + '=' + params[i]; 
 
    } 
 
    return url; 
 
} 
 

 
console.log(addParam(url, { 
 
    order: 'whatever', 
 
    test: 1 
 
}));

Verwandte Themen