Mam adres URL, który wygląda tak

mysite.com/index.php?page=home&gender=female&age=22

Lub

mysite.com/index.php?page=home&gender=female&occupation=programmer

Jak mogę dołączyć nową parram orderby=value i order=asc za pomocą znacznika a jak w jaki sposób działa przycisk przesyłania.

Podobnie jak gdy klikam nazwę łącza, dodać nowy param na łączu, a mogę posortować dane przez niego

<a href="#">Name</a> | <a href="#">Age</a>

Jak jak wordpresshandles to

wordpress/wp-admin/users.php?orderby=login&order=desc
4
Cindy93 5 grudzień 2013, 12:38

4 odpowiedzi

Najlepsza odpowiedź

Możesz użyć funkcji Wysłany tutaj https://stackoverflow.com/a/6021027/1021726. Cały kredyt trafia do amatorki .

Funkcja tworzy nową wartość na ciąg znaków lub aktualizuje istniejącą wartość.

Dodaj zdarzenie OnClick na znaczniku <a> i zadzwoń do funkcji takiej jak

updateQueryStringParameter(window.url, "orderby", "myName");
updateQueryStringParameter(window.url, "order", "desc");
0
Community 23 maj 2017, 12:28

Dlaczego nie zbudujesz adresów URL podczas renderowania szablonu? Nie ma potrzeby dla JS

Na przykład

<a href="/index.php?occupation=programmer&orderby=name&order=desc">Name</a>

Wystarczy sprawdzić bieżącą wartość zamówienia podczas renderowania i odwrócenia go.

Oczywiście, jeśli używasz AJAX, jest mniej przydatny.

3
kinghfb 5 grudzień 2013, 08:59

Możesz użyć:

document.URL + "orderby=desc"

Jedynym problemem jest to, że po kliknięciu ponownie otrzymujesz zamówienie dwa razy. Dlatego należy sprawdzić, czy adres URL zawiera już parametr Orderby.

Można znaleźć bardziej złożoną funkcję ustawienia lub wymiany parametrów adresów URL:

Dodaj / zmień parametr adresu URL i przekierować do nowego adresu URL

3
Community 23 maj 2017, 10:32

Użyj tego

var url = document.URL;
if(url.indexOf('orderby') == -1){
url = document.URL + "orderby=desc";
}
2
user3069200user3069200 5 grudzień 2013, 08:52