Avatar billede dogano Nybegynder
23. marts 2006 - 14:46 Der er 12 kommentarer

ASP poster på søgning

Hej

Jeg har en søgeside der fungere fint med udtræk fra access database. Når den har fundet en post fra database skal den vise  resultat i en input form, og når der ikke er nogen resultat fra søgningen skal input formen være tom.
Avatar billede jps6kb Novice
23. marts 2006 - 14:54 #1
Jeg ved ikke om jeg har forstået dig ret, men du kunne vel gøre noget som så:


<%
variabel1 = ""
variabel2 = ""

if NOT rs.EOF then
' Hvis den ikke er tom
    variabel1 = rs("felt1")
    variabel2 = rs("felt2")
end if
%>

<form ....>
<input type="text" value="<% = variabel1 %>"/>
</form>

Sådan noget du mener?
Avatar billede jps6kb Novice
23. marts 2006 - 14:54 #2
Var et svar jo ;)
Avatar billede dogano Nybegynder
23. marts 2006 - 14:55 #3
Det er gangske almindelig input form

<table border="1" width="74%">
            <tr>
                <td width="317">Navn
    <input type="text" name="navn" size="20"><p>Adresse
    <input type="text" name="adresse" size="20"> </p>
    <p>Postnr.
    <input type="text" name="postnr" size="20"></p>
    <p>By
    <input type="text" name="by" size="20"></p>
    <p>Telefon    <input type="text" name="telefon" size="20"></p>
    <p><input type="submit" value="Send" name="B1"><input type="reset" value="Nulstil" name="B2"></p>
Avatar billede dogano Nybegynder
23. marts 2006 - 14:59 #4
Her har vi den lange version dvs. koden

<%
' FP_ASP ASP, der er genereret automatisk af en FrontPage-komponent. Undlad at redigere.

On Error Resume Next
Session("FP_OldCodePage") = Session.CodePage
Session("FP_OldLCID") = Session.LCID
Session.CodePage = 1252
Session.LCID = 1030
Err.Clear

strErrorUrl = ""

If Request.ServerVariables("REQUEST_METHOD") = "POST" Then
If Request.Form("VTI-GROUP") = "0" Then
    Err.Clear

    Set fp_conn =  Server.CreateObject("ADODB.Connection")
    FP_DumpError strErrorUrl, "Der kan ikke oprettes forbindelse."

    Set fp_rs = Server.CreateObject("ADODB.Recordset")
    FP_DumpError strErrorUrl, "Postsæt kan ikke åbnes."

    fp_conn.Open Application("Database1_ConnectionString")
    FP_DumpError strErrorUrl, "Databasen kan ikke åbnes."

    fp_rs.Open "Kunder", fp_conn, 1, 3, 2 ' adOpenKeySet, adLockOptimistic, adCmdTable
    FP_DumpError strErrorUrl, "Postsæt kan ikke åbnes."

    fp_rs.AddNew
    FP_DumpError strErrorUrl, "Der kan ikke føjes nye poster til databasen."
    Dim arFormFields0(18)
    Dim arFormDBFields0(18)
    Dim arFormValues0(18)

    arFormFields0(0) = "postnr"
    arFormDBFields0(0) = "postnr"
    arFormValues0(0) = Request("postnr")
    arFormFields0(1) = "telefon"
    arFormDBFields0(1) = "telefon"
    arFormValues0(1) = Request("telefon")
        FP_SaveFormFields fp_rs, arFormFields0, arFormDBFields0


    fp_rs.Update
    FP_DumpError strErrorUrl, "Databasen kan ikke opdateres."

    fp_rs.Close
    fp_conn.Close

    FP_FormConfirmation "text/html; charset=windows-1252",_
                        "Formularbekræftelse",_
                        "Du har sendt følgende oplysninger:",_
                        "search.asp",_
                        "Vend tilbage til formularen."

End If
End If

Session.CodePage = Session("FP_OldCodePage")
Session.LCID = Session("FP_OldLCID")

%>
<% Response.Buffer = True %>

<html><head>
<meta http-equiv="Content-Language" content="da">
<title>Søgeresultat</title>
<LINK REL="Stylesheet" HREF="style.css" TYPE="text/css">
</head><body bgcolor="#FFFFCC">


<%
' Henter værdien fra soeg.htm
strKeyword = Trim(Request.Form("Keyword"))

If Len(strKeyword) = 0 Then
  ' Hvis der ikke er skrevet i feltet
  Response.Clear
  Response.Redirect("search.htm")
Else
  ' Hvis der er skrevet i feltet
  strKeyword = Replace(strKeyword,"'","''")
End If

' Opbygger en dynamisk SQL streng
strSQL = "SELECT ID, Navn, Adresse, by, postnr, telefon,  FROM Kunder WHERE"
strSQL = strSQL & " (Navn LIKE '%" & strKeyword & "%')"
strSQL = strSQL & " OR (Adresse LIKE '%" & strKeyword & "%')"
strSQL = strSQL & " OR (by LIKE '%" & strKeyword & "%')"
strSQL = strSQL & " OR (postnr LIKE '%" & strKeyword & "%')"
strSQL = strSQL & " OR (telefon LIKE '%" & strKeyword & "%')"


' Skaber DSNLess forbindelse til DBen
strDSN = "DRIVER={Microsoft Access Driver (*.mdb)};DBQ="&Server.MapPath("search_2000.mdb")
Set myConn = Server.CreateObject("ADODB.Connection")
myConn.Open strDSN
  set rs = Server.CreateObject("ADODB.recordset")
  rs.Open strSQL, myConn
If Not (rs.BOF Or rs.EOF) Then
  ' Hvis der er fundet poster på søgningen
  Response.Write "<p>Søgeresultat(er)</p>"
  Response.Write "<table border=1>"
  Response.Write "<tr><th>Navn</th><td>" & rs("Navn") & "</td></tr>"
  Response.Write "<tr><th>Adresse</th><td>" & rs("Adresse") & "</td></tr>"
  Response.Write "<tr><th>Postnr</th><td>" & rs("postnr") & "</td></tr>"
  Response.Write "<tr><th>By</th><td>" & rs("by") & "</td></tr>"
  Response.Write "<tr><th>telefon</th><td>" & rs("telefon") & "</td></tr>"
 
  Do While Not rs.EOF
        Response.Write ""
        Response.Write ""
        Response.Write ""
        Response.Write ""
        Response.Write ""
   
        rs.MoveNext
  Loop
  Response.Write "</table>"
Else
  ' Hvis der ikke er fundet poster på søgningen
  Response.Write "<p>Der er ikke fundet noget på denne søgning</p>"
 
End If

' Rydder op efter os
myConn.Close
Set myConn = Nothing
%>

<p>&nbsp;</p>
<p>&nbsp;</p>
<form method="POST" action="--WEBBOT-SELF--">
    <!--webbot bot="SaveDatabase" startspan SuggestedExt="asp" S-DataConnection="Database1" S-RecordSource="Kunder" U-Database-URL="search_2000.mdb" S-Form-Fields="postnr telefon antal1 antal2 antal3 by antal4 antal5 antal6 dato nr1 nr2 adresse navn nr3 nr4 nr5 nr6" S-Form-DBFields="postnr telefon antal1 antal2 antal3 by antal4 antal5 antal6 dato nr1 nr2 Adresse Navn nr3 nr4 nr5 nr6" U-ASP-Include-Url="_fpclass/fpdbform.inc" --><input TYPE="hidden" NAME="VTI-GROUP" VALUE="0"><!--#include file="_fpclass/fpdbform.inc"--><!--webbot bot="SaveDatabase" endspan i-checksum="40548" -->
    <p>&nbsp;</p>
    <p>Bestil</p>
    <div align="center">
        <table border="1" width="74%">
            <tr>
                <td width="317">Navn&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
    <input type="text" name="navn" size="20"><p>Adresse&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
    <input type="text" name="adresse" size="20"> </p>
    <p>Postnr.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
    <input type="text" name="postnr" size="20"></p>
    <p>By&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
    <input type="text" name="by" size="20"></p>
    <p>Telefon&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
    <input type="text" name="telefon" size="20"></p>
    <p><input type="submit" value="Send" name="B1"><input type="reset" value="Nulstil" name="B2"></p>
            </tr>
        </table>
    </div>
</form>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>

</body></html>
Avatar billede ffsoft Praktikant
23. marts 2006 - 15:32 #5
jps6kb svarer på dit spørgsmål.

<input type="text" name="navn" size="20>

der mangler bare en value del der får sin værdi fra en variabel der igen
får sin værdi fra et recordset.

<input type="text" name="navn" size="20 value="<% = variabel1 %>"/>
Avatar billede dogano Nybegynder
23. marts 2006 - 15:50 #6
Hvordan kommer den så til at se ud i vores kode, og hvor skal koden placeres.
Avatar billede dogano Nybegynder
23. marts 2006 - 17:39 #7
Det er fungere fint, på denne måde :

<%
variabel1 = "navn"
variabel2 = "adresse"
variabel3 = "postnr"
variabel4 = "by"
variabel5 = "telefon"


if NOT rs.EOF then
' Hvis den ikke er tom
    variabel1 = rs("navn")
    variabel2 = rs("adresse")
    variabel3 = rs("postnr")
    variabel4 = rs("by")
    variabel5 = rs("telefon")



end if
%>

men i boksen får vi navn,adresse,by......
Avatar billede dogano Nybegynder
23. marts 2006 - 17:41 #8
I boksene skal vi have oplysningerne fra databasen
Avatar billede ffsoft Praktikant
23. marts 2006 - 19:55 #9
Nu har jeg prøvet at kopiere al koden ind i en ny side
og afvikle den, selv om jeg udkommenterer AL VBS kode
for jeg ikke noget frem. Jeg kan slet ikke få hoved og
hale på hvad koden gør og hvornår.

Du skal dele siden op i en HTML del og en VBS del.

VBS delen skal:

Lave en forbindelse til databasen
Åbne et recordset på baggrund af et SQL udtryk
Lægge værdier i variabler som hentes fra recorsettet
Lukke recordset og forbindelse

HTML delen skal

Vise en tabel med input felter
Værdien i felterne er variablerne

Så kan du lave noget med <form> tags og POST
metoden så du hopper til en ny side med de
indtastede værdier.
Men det er næste step.
Avatar billede dogano Nybegynder
23. marts 2006 - 20:36 #10
Der er en search.htm side og en search.asp. ovenstående kode er search.asp

search.htm koden er :

<html>

<head>

<title>Fritekst søgning</title>
</head>

<body>

<form method="POST" action="search.asp">
  <p>&nbsp;</p>
    <div align="center">
        <table border="1" width="62%" bgcolor="#FF0000">
            <tr>
                <td>
                <p align="center">&nbsp;</p>
                <p align="center"><font face="Arial" size="4">INDTAST KUNDE TLF.</font></p>
                <p align="center"><input type="text" name="Keyword" size="20"></p>
                <p align="center">&nbsp;</p>
                <p align="center"><br>
  <input type="submit" value="Søg" name="Action"></p>
                <p>&nbsp;</td>
            </tr>
        </table>
    </div>
    <p>&nbsp;</p>
</form>
</body>
</html>
Avatar billede ffsoft Praktikant
24. marts 2006 - 15:27 #11
Jeg prøver at lave et lille eksempel til dig, når jeg
kommer hjem.
Avatar billede ffsoft Praktikant
24. marts 2006 - 21:51 #12
Hvis du vil prøve det:

http://www.ffsoft.dk/kunde/soeg.htm

der er to tlf numre: 10 og 11 du kan lege med.

Hvis du vil have koden:

http://www.ffsoft.dk/kunde/kunde.zip
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester