Usuwanie, edycja ciągu znaków (URL) - tworzenie filtra

0

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ł.

0

a nie możesz po prostu czegoś w stylu:

<form action="?" method="get">
    <input onchange="this.form.submit();" name="jakis_input" />
    <select onchange="this.form.submit();" name="select">
        <option>111</option>
        <option>222</option>
    </select>
    <input type="submit" />
</form>

1 użytkowników online, w tym zalogowanych: 0, gości: 1