Javascript: Göra sökfilter och dynamiskt bygga om tabell
Postat: 26 september 2009, 15:06:15
Jag hackar lite sidor åt en hockeyklubb (PHP + Postgres samt lite javascript, det senare beroende på hur mycket jag lyckas lära mig under projektets gång). Nu står jag inför en kodförändring som jag inte riktigt vet hur jag ska angripa.
På en av sidorna kan lagledare välja in personer till sin trupp. När de klickar på "Anslut spelare till denna trupp" byggs en sida upp med alla inlagda spelare i databasen. Alla spelare har en kryssruta som lagledarna kryssar i för den spelare de vill ha, och sen klickar de "Ok" för att välja. Så långt allt väl.
Nu är det så att antalet spelare har växt enormt sen projektet drog igång för två år sen. Det är lite knivigt att leta fram rätt spelare i en fyrkolumnig tabell med väldigt många (FÖR många) namn. En fullösning jag gjorde då var att implementera ett filter. T.ex "lista alla {män,kvinnor} födda under år {1976-1980,1981-1985,1986-1990, osv}". Det funkar, men problemet här är att även dessa årskullar är såpass stora att det blir ändå väldigt många namn.
Inatt sov jag fram till en ny lösning som jag tror kan bli den bästa, men då mina kunskaper i Javascript är väldigt skrala så vet jag inte hur jag ska utföra det på bästa sätt.
Det jag har tänkt mig är att när lagledarna kommer till sidan för spelarlistan så ska alla spelare listas i tabellform (precis som nu). Längst upp ska det dock finnas ett textfält, "Namnfilter", samt en knapp "Sök". När man skriver in exempelvis "all" ska tabellen rensas, och samtliga namn (för- som efter-) som matchar "all" listas. T.ex Kalle Kallesson, Frida Allansson, osv. Såna filter är väldigt vanliga i webbutiker. Jag vill som sagt att denna filtrering ska göras on-the-fly, utan att ladda om sidan.
Om vi utgår att alla spelare (med tillhörande kryssruta, korrekta id-taggar, och liknande) listas i tabellen, hur implementerar jag min dynamiska tabellbyggare? Eller, vilka javascript-saker vill jag lära mig mer om?
(Jag känner till .innerHtml, onclick() och dessa grundläggande JS-sakerna, men jag vet inte riktigt hur jag ska få allt att samarbeta med varandra och bygga om tabellen dynamiskt)
På en av sidorna kan lagledare välja in personer till sin trupp. När de klickar på "Anslut spelare till denna trupp" byggs en sida upp med alla inlagda spelare i databasen. Alla spelare har en kryssruta som lagledarna kryssar i för den spelare de vill ha, och sen klickar de "Ok" för att välja. Så långt allt väl.
Nu är det så att antalet spelare har växt enormt sen projektet drog igång för två år sen. Det är lite knivigt att leta fram rätt spelare i en fyrkolumnig tabell med väldigt många (FÖR många) namn. En fullösning jag gjorde då var att implementera ett filter. T.ex "lista alla {män,kvinnor} födda under år {1976-1980,1981-1985,1986-1990, osv}". Det funkar, men problemet här är att även dessa årskullar är såpass stora att det blir ändå väldigt många namn.
Inatt sov jag fram till en ny lösning som jag tror kan bli den bästa, men då mina kunskaper i Javascript är väldigt skrala så vet jag inte hur jag ska utföra det på bästa sätt.
Det jag har tänkt mig är att när lagledarna kommer till sidan för spelarlistan så ska alla spelare listas i tabellform (precis som nu). Längst upp ska det dock finnas ett textfält, "Namnfilter", samt en knapp "Sök". När man skriver in exempelvis "all" ska tabellen rensas, och samtliga namn (för- som efter-) som matchar "all" listas. T.ex Kalle Kallesson, Frida Allansson, osv. Såna filter är väldigt vanliga i webbutiker. Jag vill som sagt att denna filtrering ska göras on-the-fly, utan att ladda om sidan.
Om vi utgår att alla spelare (med tillhörande kryssruta, korrekta id-taggar, och liknande) listas i tabellen, hur implementerar jag min dynamiska tabellbyggare? Eller, vilka javascript-saker vill jag lära mig mer om?
(Jag känner till .innerHtml, onclick() och dessa grundläggande JS-sakerna, men jag vet inte riktigt hur jag ska få allt att samarbeta med varandra och bygga om tabellen dynamiskt)