/ Forside / Teknologi / Udvikling / ASP / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
ASP
#NavnPoint
smorch 9259
Harlekin 1866
molokyle 1040
Steffanst.. 758
gandalf 657
smilly 564
gibson 560
cumano 530
MouseKeep.. 480
10  Random 410
overførsel af parametre
Fra : Kurt G


Dato : 22-09-06 17:40

Jeg har lavet en side, hvor jeg får udlæst data fra en database i en tabel
vha lidt hardkodet sql.
Nu vil jeg gerne have lavet to input på siden til at bestemme, hvad der skal
søges efter.

Jeg har lavet to boxe således:
Kasse/Gruppe: <input type="text" name="kasse"
Omhandler: <input type="text" name="omhandler"
<input type="submit" name="soeg" value="Søg"

Forespørgslen ser således ud:
<%
Set Database = Server.CreateObject ("ADODB.Connection")
database.open ("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=c:..osv
Set personer = Server.CreateObject("ADODB.Recordset")
Personer.open "Select * FROM KasseA Where Omhandler Like '%Djeld%',database
%>
Senere i en loop bliver data udskrevet.

Hvordan får jeg input fra [Omhandler: <input type="text" name="omhandler"]
ført over i [Omhandler Like '%Djeld%',database]?

Mvh Kurt



 
 
Jens Gyldenkærne Cla~ (22-09-2006)
Kommentar
Fra : Jens Gyldenkærne Cla~


Dato : 22-09-06 18:55

Kurt G skrev:

> Hvordan får jeg input fra [Omhandler: <input type="text"
> name="omhandler"] ført over i [Omhandler Like
> '%Djeld%',database]?

Prøv at kigge på eksempel 3 her:
<http://www.html.dk/tutorials/asp/lektion19.asp>
--
Jens Gyldenkærne Clausen
Svar venligst under det du citerer, og citer kun det der er
nødvendigt for at forstå dit svar i sammenhængen. Se hvorfor og
hvordan på http://usenet.dk/netikette/citatteknik.html

Jørn Andersen (22-09-2006)
Kommentar
Fra : Jørn Andersen


Dato : 22-09-06 19:09

On Fri, 22 Sep 2006 18:40:05 +0200, "Kurt G" <kurt_g@guldbaek.net>
wrote:

>Jeg har lavet en side, hvor jeg får udlæst data fra en database i en tabel
>vha lidt hardkodet sql.
>Nu vil jeg gerne have lavet to input på siden til at bestemme, hvad der skal
>søges efter.
>
>Jeg har lavet to boxe således:
>Kasse/Gruppe: <input type="text" name="kasse"
>Omhandler: <input type="text" name="omhandler"
><input type="submit" name="soeg" value="Søg"
<snip>

>Hvordan får jeg input fra [Omhandler: <input type="text" name="omhandler"]
>ført over i [Omhandler Like '%Djeld%',database]?

Prøv at kigge på:
<url: http://www.html.dk/tutorials/asp/lektion11.asp>
som handler om at overføre værdier fra én side til en anden (eller til
den samme) med en formular.

Lektion 10 handler om at gøre det med en QueryString.

En tredje metode er at bruge Session-variable - det bruges især, hvis
et valg skal fastholdes over flere sider, men inden for samme Session
(dvs. samme uafbrudte besøg på siderne). Se fx:
<url: http://www.html.dk/tutorials/asp/lektion12.asp>

En fjerde er at bruge Cookies - bruges mest, hvis man vil fastholde et
valg over længere tid, fra et besøg til det næste fx.


Uanset hvilken metode, du vælger skal du vælge nogle "defaults" - atså
når folk kommer til siden uden at have foretaget nogle valg. det gøres
nemmest med en If ... Then .. Else-konstruktion (eller en Select
Case-konstruktion), fx:

If Request.Form("omhandler") = "hest" Then
strOmhandler = "hest"
ElseIf Request.Form("omhandler") = "ko" Then
strOmhandler = "ko"
Else
strOmhandler = "gris"
End If

Eller med Select Case:
strOmhandler = Trim("" & Request.Form("omhandler"))
Select Case strOmhandler
Case "hest", "ko"
' Alt i orden
Case Else
strOmhandler = "gris"
End If

Sql'en kunne så være:
strSql = "Select * FROM KasseA" & _
" Where Omhandler Like '%" & strOmhandler & "%'"

Denne metode kan bruges, hvis der er et meget begrænset antal valg.


Hvis det er muligt at søge på "hvad-som-helst", skal man kun checke
på, om der er er et input - fx:

strOmhandler = Trim("" & Request.Form("omhandler"))
If strOmhandler = "" Then
' Vis kun søgeboksen
Else
' Vis resultat (og evt. søgeboks)
End If

I dette tilfælde skal man dog tage højde for, at "ondsindede personer"
kan finde på at skrive mærkelig kode ind. Se fx:
<url: http://www.asp-faq.dk/article/?id=95>
Så i stedet for blot at skrive:
strOmhandler = Trim("" & Request.Form("omhandler"))
skriver du:
strOmhandler = Trim("" & Request.Form("omhandler"))
strOmhandler = Replace(strOmhandler, "'", "''")

Alt dette kalder man (eller i hvert fald jeg) for input-validering.
Det bruges til at sikre, at man får de data ind, man forventer - fx
kan man, hvis man forventer at få et tal som input, checke om det
faktisk er et tal og evt. om det ligger inden for et forventet
interval.
Man kan så forfine det med at give brugeren tilbagemlding, hvis man
ikke får det forventede input.
Dette er ikke kun med til at gøre siderne mere sikre, men også mere
bruger-venlige, idet brugeren langt sjældnere oplever uforkalrlige
fejl.

Jeg hopper lige tilbage til:
>Forespørgslen ser således ud:
><%
>Set Database = Server.CreateObject ("ADODB.Connection")
>database.open ("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=c:..osv
>Set personer = Server.CreateObject("ADODB.Recordset")
>Personer.open "Select * FROM KasseA Where Omhandler Like '%Djeld%',database

Må jeg anbefale, at du skriver SQL-strengen i en variabel, frem for
direkte i åbnings-linien:
strSql = "Select ... "
Personer.open strSql, database

Hvis du så får en fejlmelding i åbnings-delen, kan du nemt udskrive
SQL-strengen for at se, om den faktisk indeholder det, du forventer -
ved midlertidigt at indsætte to linier før åbningen:

strSql = "Select ... "
Response.Write strSql & "<br>" & vbcrlf
Response.End
Personer.open strSql, database

Afviklingen stopper så lige inden den linie, der udløser fejlen, og du
kan checke SQL-strengen.

Good luck!

--
Jørn Andersen,
Brønshøj

Kurt G (22-09-2006)
Kommentar
Fra : Kurt G


Dato : 22-09-06 20:17

Tak for jeres svar, der er noget, som jeg skal have tygget på.

Mvh Kurt



Mads Graugaard Hanse~ (22-09-2006)
Kommentar
Fra : Mads Graugaard Hanse~


Dato : 22-09-06 20:16

<snip>
> Hvordan får jeg input fra [Omhandler: <input type="text" name="omhandler"]
> ført over i [Omhandler Like '%Djeld%',database]?
>
> Mvh Kurt

</snip>

du laver en form .
lad os sige denne side hedder db.asp

-----
<form action="db.asp?do=search" method="get">
<input type="text" name="omhandler" />
<input type="submit" value="Søg" />
</form>


Så kan du lave noget a'la følgende.

db.asp

<%
doSql = Request.QueryString("do")

If doSql = "" Then
Djeld = 'her indsætter du din sql (som du kaldte Djeld) hvis ikke der søges
Else
Djeld = Request.Form("Omhandler")
End If

Databaseforbindelse

og så udfører du din sql.

[Omhandler Like '%Djeld%',database]

/Mads

--
Vil du lære at kode HTML, XHTML, CSS, SSI, ASP eller ASP.NET?
- Pædagogiske tutorials på dansk
- Kom godt i gang med koderne
KLIK HER! => http://www.html.dk/tutorials

Kurt G (24-09-2006)
Kommentar
Fra : Kurt G


Dato : 24-09-06 21:48

Nu har fået det til at virke.
Tak til alle jer, der svarede.
/Kurt



Søg
Reklame
Statistik
Spørgsmål : 177558
Tips : 31968
Nyheder : 719565
Indlæg : 6408924
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste