webForumDet fria alternativet

Problem med ÅÄÖ med jquery tillsammans med asp

JavaScript

23 svar · 2 626 visningar · startad av bikic

Medlem sedan juni 2006261 inlägg
Frågan#1

Hej,

jag har ett litet problem med en autosuggest i jquery. Jag har ett script som jag för övrigt tycker är skitbra och det finns att titta på här (http://spacebug.com/auto-suggest-jquery-plugin/). Ursprungligen kommer det från Drew Wilson.

Jag har en sida med en input där man kan söka på allt möjligt. Jquery skickar en fråga till en sida som baseras på ren asp och returnerar värdena under inboxen med en så kallad autosuggest.

Jag får allt att fungera och det ser riktigt bra ut. Har jag ett sökord som heter "tjänster" så kan jag söka på "tj" och få upp svaret "tjänster". Observera att det här skriver ut åäö. Men så fort jag vill söka på "tjänster" så hittar den ingenting och det har med åäö att göra.

Jag vet inte riktigt vad jag ska göra, vill ha scriptet för det fungerar så himla bra. Jag har postat ett inlägg på drew wilson diskussionsforum och avvaktar svar.

Jag har förövrigt Response.Charset = "ISO-8859-1" på alla sidor, samt <meta http-equiv="content-type" content="text/html; charset=iso-8859-1"> på sidan där inputen finns.

Är det någon som kan hjälpa mig?

Koden som aktiverar scriptet ser ut så här.

<script type="text/javascript">

$(document).ready(function() {
	$("#auto").autoSuggest("suggestions.asp", {
		minChars: 2,
		resultClick: function(data){window.location = data.attributes.name;},
		min:"no"
	});
});

</script>

Medlem sedan juni 20019 519 inlägg
#2

vad gör suggestions.asp? är å ä ö eller är det å etc? eller provar att Server.UrlDecode(querystringen) som du få ifrån autoSuggest.

Medlem sedan juni 2006261 inlägg
#3

suggestions.asp skapar data för scriptet och ser ut så här efter det att ASP-koden är körd (nu ser ni filen med bara ett värde.

[{"value":"Tjänster","name":"http://www.dinurl.com"}]

Jag har inte provat med Server.UrlDecode -ska prova med det.

Medlem sedan juni 2006261 inlägg
#4

Det funkade inte - trist ;)

Något annat förslag?

Medlem sedan juni 20019 519 inlägg
#5

Hur är värderna sparade i databasen (gissar att det är där du kolla i), vad är det för exakta källkoden asp koden generera?

För om du kollar på: http://choozza.com/ när du skriver å ä ö så bli det urlencoded, hur ser SQL frågan ut när du skickar in å ä ö?

Medlem sedan juni 2006261 inlägg
#6

Värdena är sparade i både nvarchar och ntext. Den exakta källkoden som asp-koden genererar blir ju det som jag postade innan.

Som sagt, scriptet är det inget fel på. Det är bara åäö som inte fungerar i samband med själva söket. Skriver "tj" som tar den fram ordet "tjänster", men skriver jag "tjä" så hittar den inget.

Jag har kollat en del på chozza, hur ser du att det är urlencoded?

SQL-frågan är basic:

strInputString = Request("q")

SQL = "SELECT * FROM TABELL WHERE TITEL LIKE '%" & strInputString & "%'"

Medlem sedan juni 20019 519 inlägg
#7

Använd exempelvis firebug för att se vad den gör för ajax postningar.

Det jag är ute efter är vad SQL frågan faktiskt bli.

strInputString = Server.UrlDecode("" & Request("q"))

SQL = "SELECT * FROM TABELL WHERE TITEL LIKE '%" & strInputString & "%'"
Response.Write(SQL)
Response.End

Där gissar jag att den kommer generera en annan kod än:

strInputString = Request("q")

SQL = "SELECT * FROM TABELL WHERE TITEL LIKE '%" & strInputString & "%'"
Response.Write(SQL)
Response.End

Men Titel, är det Tjänst eller är det tjänstsom finns i databasen?

Medlem sedan juni 2006261 inlägg
#8

Funkar inte med Server.UrlDecode - har använt mig av regular expressions. Får felmeddelandet:

Object doesn't support this property or method: 'Server.UrlDecode'

Medlem sedan juni 2006261 inlägg
#9

Jag kan ju heller inte felsöka och se vad jag får för SQL-fråga, då den inte vill skriva ut något som den inte hittar.

Medlem sedan juni 2006261 inlägg
#10

Nu fick jag fram SQL-frågan men så fort jag skriver in ett å, ä eller ö så skriver den ut "din sökning gav inga träffar.

Jag får inte ens chansen att se vad den skriver ut.

Medlem sedan juni 20019 519 inlägg
#11

Kör funktionen: http://webforumz.com/classic-asp/8057-urldecode-the-one-asp-vbscript.htm istället, trodde att det fanns men tydligen inte i ASP, men då förstå jag inte vad du har gjort när jag bad dig decoda den tidigare.

Jag kan ju heller inte felsöka och se vad jag får för SQL-fråga, då den inte vill skriva ut något som den inte hittar.

klart du kan debugar dina egna koder, gå bara till din sida, men enklast är att köra en webbläsare som kan visa dina ajax anrop (firebug till firefox), lägg upp din sida gärna så bli det enklare att kolla på vad den faktiskt gör.

Medlem sedan juni 2006261 inlägg
#12

Såg din fråga "Men Titel, är det Tjänst eller är det tjänstsom finns i databasen?"

Det står Tjänst i databasen.

Medlem sedan juni 2006261 inlägg
#13

Angående ditt senaste svar.

Jag skrev att jag inte kunder URLDecoda utan fick köra med regular expressions som är motsvarigheten i vanlig ASP - och det fungerade inte.

Klart jag kan debugga mina egna koder, det är bara det att jag inte får se SQL-frågan - för så fort den inte hittar ett resultat så skriver den ut "texten" för en negativ sökning. Hoppas du förstår vad jag menar.

Summa summarum är att jag inte kan felsöka och vet vad jag ska göra här näst, scriptet fungerar och den skriver ut ordet tjänst så länge jag inte använder mig av å, ä eller ö.

Skumt är det!

Jag kan heller inte visa projektet LIVE då det ligger utanför mina behörigheter, kunden önskar detta.

Medlem sedan juni 20019 519 inlägg
#14

Nu hoppas jag att jag missförstå dig när du skriver att du kör regexp är samma sak som urldecode, vilket det självklart inte är.

Vad jag _tror_ eftersom det inte gå att göra tester (har inte heller tid att skapa upp ett projekt för att försöka göra det) men jag tror att du matar in i din SQL fråga:

tj%C3%A4nst när du skriver in tjänst, vilket inte kommer ge en matchning

vad få du när du gå till din suggestions.asp?q=tjänster

få du ut ett positivt resultat?

Medlem sedan juni 2006261 inlägg
#15

Sorry, fel av mig!

Intressant grej här!

När jag skriver in suggestions.asp?q=tjänster

så blir det så här i adressfältet

test.asp?q=tj%E4nster

Vad beror det på?

Medlem sedan juni 20019 519 inlägg
#16

Webbläsaren skriver om texten till en url, vilket är korrekt.

Medlem sedan juni 2006261 inlägg
#17

Självklart, kom på det alldeles precis.

Men jag tror också att det blir tj%C3%A4nst när du skriver in tjänst, vilket inte kommer ge en matchning. Skriver jag in suggestions.asp?q=tjänster så får jag heller inte fram någon data, så det har ju med det att göra.

Men hur kan jag komma runt det? Blir tokig ;)

Medlem sedan juni 20019 519 inlägg
#18

URLDecodar din querystring innan du matar in den i din SQL frågar.

fast jag gjorde ett test: http://voigt.se/sandbox/wf/qs/?q=tj�nst verkar ju fungera som det skall.

Medlem sedan juni 2006261 inlägg
#19

Men jag fick det inte till att fungera med det du rekommenderade.

Jag får ett positivt resultat med url:n suggestions.asp?q=tjänster när jag använder mig av URLDecode-funktionen som du tidigare postade.

Men i själva scriptet så får jag inte fram något resultat alls.

Medlem sedan juni 20019 519 inlägg
#20

Vilken webbläsare kör du dina tester? Är det för alla webbläsare?

271 ms totalt · 4 externa anrop · v20260731065814-full.a51de22e
128 ms — deklarationer (db)
0 ms — hämta statistik (cache)
140 ms — hämta tråd, inlägg och bilagor (db)
129 ms — ändringar (db)