Just nu i M3-nätverket
Gå till innehåll

Vad missar jag. (Form och lowercase)


Jocke_Örebro

Rekommendera Poster

Jocke_Örebro

Har en textbox vars innehåll jag vill ha till små bokstäver när det skickas. Detta eftersom jag har en IF satts sen som kollar och vill helst slippa sitta och göra allt två gånger, en gång med stor begynnelsebokstav och en med liten.

 

 

Men det vill inte bli rätt. Skriver jag med stora så funkar inte if satsen där jag har små.

 

<form method="POST" action="visa.asp">
Sök 
<input name="sok" type="text" size="18" maxlength="100" 
onChange="javascript:this.value=this.value.toLowerCase();">

<input type="submit" value="" name="knapp" id="knapp">
</form>

 

Vad stämmer inte här?

 

 

Länk till kommentar
Dela på andra webbplatser

Är det tvunget att dem ska skriva in texten enbart med små bokstäver eller är det bara för att din If-sats ska fungera?

Du kan nämligen göra om ett värde som du tar emot på en Asp-sida till enbart småbokstäver med LCase(värdet).

 

Förklara gärna mer Varför/Hur det är tänkt :)

 

Länk till kommentar
Dela på andra webbplatser

Hänger inte riktigt med i resonemanget. Du vill att texten som skickas till ditt ASP-script ska innehålla endast små bokstäver? Vad blir fel?

 

Som användare kan man nog bli irriterad av ett js-script som automatiskt ändrar det man skriver in till små bokstäver. Om detta görs enbart för ASP-scriptets skull så rekommenderar jag att lägga denna konvertering helt i ASP-scriptet, eller alternativt i fomulärets "OnSubmit"-hanterare.

 

[inlägget ändrat 2006-10-30 15:56:35 av Dev]

Länk till kommentar
Dela på andra webbplatser

Jocke_Örebro

OK

Var lite otydlig där.

 

Skriver om. Vad jag försöker göra är en enkel sök funktion på en mindre sida, utan databas.

 

Har en textrutan där de kan skriva in vad de söker efter och en submitknapp. Ser ut följande:

 

<form method="POST" action="visa.asp">
Sök <input name="sok" type="text" size="18" maxlength="100" onsubmit="javascript:this.value=this.value.toLowerCase();">
<input type="submit" value="" name="knapp" id="knapp">
</form>

Här har jag testat med onsubmit men det funkade inte heller (hade onChange innan)

 

Sen skickas vad de sökte till visa.asp sidan där resultatet ska vissas. Vad som ska vissas bestäms av en IF-sats, som ser ut följande:

 

<%
If Request.Form("sok") = "örebro" THEN
response.write("Örebro")


ElseIf Request.Form("sok") = "annat" THEN
response.write("Vad söker du ?")

Else
response.write("Hitta nada")

End If
%>

 

Nu vill jag inte behöva sitta och göra en IF för Örebro och en för örebro, därför vill jag få allt till små bokstäver när det kommer till visa.asp. Jag trode att onsubmit eller onChange skulle göra det men, nix. Får bara "hitta nada" när jag tesar med Örebo. Kan även lägga till att jag har använt include för IF scriptet till visa.asp sidan, men det ska väl inte spela någon roll, eller?

 

 

 

[inlägget ändrat 2006-10-31 08:51:45 av Jocke_Örebro]

[inlägget ändrat 2006-10-31 09:24:55 av Jocke_Örebro]

Länk till kommentar
Dela på andra webbplatser

Gör då som jag skrev innan angående LCase()!

Det gör om värdet du får ifrån textrutan till små bokstäver och då kvittar det om dem skriver öREbrO, för den gör om värdet till örebro.

Smart va ;)

 

I ditt fall där jag lade in värdet i en variabel(strSokOrd):

Dim strSokOrd
strSokOrd = LCase(Trim(Request.Form("sok")))
If strSokOrd = "örebro" Then
...
ElseIf strSokOrd = "annat" Then
...
Else
...
End If

Fast det verkar som att du inte "gör på rätt sätt".

Hur många If-satser handlar det om?

Är det bara örebro du vill kolla eller är det många städer som är aktuella?

 

[inlägget ändrat 2006-10-31 15:44:43 av Micke_skane]

Länk till kommentar
Dela på andra webbplatser

  • 4 veckor senare...
Jocke_Örebro

 

Tack för hjälpen, funka nu. Var ett tag sen jag skrev och frågade men annat kom imellan. Föst nu jag har haft tid att testa det.

 

 

Vad menar du med jag inte "gör på rätt sätt"?

 

Det är ganska många elseif det handlar om, typ 100+ tror jag, håller på att lägga in nu. Funkar inte det? Kan man inte ha oändligt med elseif?

 

 

 

Länk till kommentar
Dela på andra webbplatser

Jocke_Örebro

 

och, vid vägen

 

kan passa på att fråga en sak till

 

Jag trodde att man kunde använda Or i If, vilket man även kan men på det sättet jag har försökt får jag fel.

 

Min tanke var att folk kan stava fel så att man kan lägga till en Or för att täcka upp någon av felstavningarna.

 

Typ så här har jag provat med

If soka = "örebro" Or "orebro" THEN

 

men det funka ej. Fick nåt felmeddelande, kommer tyvärr inte ihåg vad där stod nu. Nåt med string har jag för mig.

 

Så, bara så jag kan få det avfärdat, kan man använda Or på det sätt jag önskar eller är det bara för mig att bygga Ifelse istället?

 

 

Länk till kommentar
Dela på andra webbplatser

Vad menar du med jag inte "gör på rätt sätt"?

Det beror på exakt vad det är du gör i varje if-sektion. Om det bara handlar om att skriva ut någon specifik (och relativt kort) sträng så är det bättre att använda dig av en associativ array och undviker därmed alla if-satser.

 

Om du trots allt behöver alla if-else-if så kan du snygga upp koden genom att använda SELECT-CASE istället.

 

Länk till kommentar
Dela på andra webbplatser

Så, bara så jag kan få det avfärdat, kan man använda Or på det sätt jag önskar eller är det bara för mig att bygga Ifelse istället?

 

Isåfall skulle det se ut så här:

If soka = "örebro" Or soka="orebro" THEN

 

Med en Select-Case skulle det se ut så här:

Select Case soka
Case 'örebro','orebro'
  ' Gör något
Case 'västerås','vasteras'
 ' Gör något annat
End Select

osv. för samtliga sökord.

 

Länk till kommentar
Dela på andra webbplatser

Jocke_Örebro

ok

 

Som jag har det nu är det inte så långa saker som skrivs ut

 

ser ut typ så här

If soka = "örebro" THEN
response.write("<div class='rubrik'>Sökresultat för Örebro</div><br><hr><a href='http://###'>Örebro<br> Kontaktinformation</a> <br><hr><br><a href='http://###'> Örebro<br>Personal</a><hr>")

osv...

 

 

men det där select case verkar ju bra. Blir nog att jag ändrar om. Blir nog tydligare för dem som ska uppgradera sidan med senare.

 

 

edit// Glömde att tacka så mycket för hjälpen, bockar och bugar.

 

[inlägget ändrat 2006-11-23 11:11:24 av Jocke_Örebro]

Länk till kommentar
Dela på andra webbplatser

Arkiverat

Det här ämnet är nu arkiverat och är stängt för ytterligare svar.

×
×
  • Skapa nytt...