Jump to content
Sign in to follow this  
jeskeide

søkefunksjon ?

Recommended Posts

Jeg vet ikke om dette er rette plassen å spørre.. men jeg prøver !

 

Jeg vil gjerne lage en søke funksjon mot en tabell på sql serveren.

 

Jeg håper på at det skal være mulig å lage noe slikt som :

 

Ha et vindu der jeg skriver inn søke kritteriene, og etter hver bokstav jeg skriver inn vil jeg oppdatere en liste under som i utgangspunktet viser hele tabellen jeg søker i, og når jeg har funnet den jeg søker etter vil jeg at den skal fungere som en link slik at jeg kan bruke denne til å gå videre....

 

 

er d noen som kan hjelpe meg med om dette er mulig og eventuelt hvordan?

Share this post


Link to post

dette er mulig, men jeg ville aldri gjort det.

 

vil du ved *hver* nye bokstav du skriver inn, oppdatere en liste med alternativer? i såfall vil det ta lang tid å skrive inn noe, fordi vet hvert tastetrykk må det lastes en ny phpside som viser resultatet av søker.

 

men hvis det er det du vil, så kan det løses med javascript, men du blir fort lei av å måtte vente 2 sekunder for hver bokstav du skriver i et felt.

Share this post


Link to post
dette er mulig, men jeg ville aldri gjort det.

 

vil du ved *hver* nye bokstav du skriver inn, oppdatere en liste med alternativer? i såfall vil det ta lang tid å skrive inn noe, fordi vet hvert tastetrykk må det lastes en ny phpside som viser resultatet av søker.

 

men hvis det er det du vil, så kan det løses med javascript, men du blir fort lei av å måtte vente 2 sekunder for hver bokstav du skriver i et felt.

Mja..

Det kan løses ved at man etter at bruker har tastet inn .. si 3 bokstaver.. henter ned alle poster som starter med de tre bokstavene i en js-array.

 

Deretter kunne js overta logikken og oppdatere etter hvert som bruker dyttet inn flere bokstaver.

 

Problemet er at når brukeren skal trykke den fjerde bokstaven så vil ting stoppe opp (avhengig av hastighet på internett-forbindelse) for at side skal laste ned data. Det ville for brukeren kunne oppleves som irriterende (itt avhengig av mengde/hastighet).

 

Det eneste jeg kan tenke meg, er at du laster komplett datasett på forhånd (i det du oppfrisker side-innholdet). Det vil imidlertid være avhengig av at datamengden ikke er for stor. Eventuelt.. at bruker kan redusere datamengden som må lastes ned på forhånd (les: valg av kategori).

Edited by b-urn

Share this post


Link to post

Så litt på koden der, og det var ikke spesielt avanserte greier. Alt var lagret i et svæært array, med en id til videre linker. For å vise resultater/søke brukes denne funksjonen:

 

function Find() {
 var HTML	= ""
 var Results = 0
 
 if ((navigator.userAgent.toLowerCase().indexOf('netscape') > -1) ||
     (navigator.userAgent.toLowerCase().indexOf('mozilla') > -1))
 {
 	RL = document.getElementById('ResultList')
 	ACB = document.getElementById('ACBox').value
 }
 else {
 	RL = document.all['ResultList'];
 	ACB = document.all['ACBox'].value;
 }
 
 for (i=0; i< ACProdArr.length; i++) {
 	if (ACProdArr[i].PName.toLowerCase().substr(0, ACB.length) == ACB.toLowerCase() || ACProdArr[i].PName.toLowerCase().indexOf(ACB.toLowerCase()) > -1) {
   HTML = HTML + "<a href='spg.jsp?template=SP1&B=ie&PID=" + ACProdArr[i].ID + "&LM=SD_VPF&noredir=1' class=link>" + ACProdArr[i].PName + "</a><br>"
   Results += 1
 	}
 }
 if (Results == 1 && event.keyCode == 13){
 	var index = HTML.indexOf("'");
 	strLocation = HTML.substr(index+1, HTML.indexOf("'", index+1)-(index+1));
 	document.location.href = strLocation
 }
 if (Results == 0) HTML = "No results to display"
 RL.innerHTML = HTML
}

Share this post


Link to post

tsk tsk, det lar seg gjøre ja, mitt tips var rimelig mangelfult med tanke på client side skript.

 

prøv gjerne, som de sier er nøkeklen til å få det til å lage en javascript cache.

 

enten kan du dumpe hele databasen til javascriptet og la den stå for søkingen, eller dumpe et smart utvalg (kanskje ut fra 3 bokstaver som nevnt)

 

vis oss url etterpå hvis du får det til!

Share this post


Link to post

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
Sign in to follow this  

  • Recently Browsing   0 members

    No registered users viewing this page.

×
×
  • Create New...