Próbuję zrobić sobie filtry danych (PHP, JS, Mysql).
Napisałem sobie bazę danych.
Po wysłaniu zapytania typu SELECT bez żadnych warunków baza zwraca dane.
Teraz chce dodać filtry.
Dodaję tag SELECT czyli listę rozwijąną, która zawiera unikatowe wartości wyczytane z konkretnej kolumny tabeli.
Zdarzenie onChange ma utworzyć link URL ze zmienną GET typu: "?fstatus=student".
No i już wtedy zapytanie do bazy się zmienia i następuje odczyt z warunkiem.
OPIS PROBLEMU:
Funkcja js tworząca filtr tzn. adres URL ze zmiennymi.
function createURLFilters(SelName) {
var obj=document.getElementById(SelName); // obiekt
var filter=SelName.replace("filter_",""); // pobranie nazwy filtra czyli usunięcie prefixu 'filter_' np: 'status'
var selVal=obj.options[obj.selectedIndex].value; // pobranie wartości z listy np. 'student'
var filter_path='f'+filter+'='+ selVal.toLowerCase(); // stworzenie ścieżki filtra 'fstatus=student'
var path=location.search; // pobranie wszystkich zmiennych GET np. '?page=users'
if (strpos(path,'f'+filter)>0) { // jeżeli już taki filtr istnieje. Funkcja strpos jako odpowiednik tejże z PHP
newpath=path; // to tylko do testów, żeby działało
} else {
if (path=='') // jeżeli nie ma innych filtrów
var newpath=path+'?'+filter_path; // wstaw nowy filtr ze znakiem ? np. 'index.php?fstatus=student'
else // jeżeli jest już ustawiony jakiś filtr
var newpath=path+'&'+filter_path; //wstaw kolejny filtr już ze znakiem & np. 'index.php?fstatus=student&fgroup=moderatorzy'
}
window.location.href = newpath;
}
Teraz potrzebuję zrobić możliwość edycji ścieżki, jeśli ktoś wybierze już istniejący filtr ale wybierze inną opcję oraz możliwość usunięcia filtra jeżeli wybierze pustą wartość.
Jestem dosyć kiepski w Javascript, staram się jak mogę ale nie wychodzi wszystko tak jak chcę, może ktoś ma pomysł.