Avatar billede moejensen Nybegynder
17. september 2002 - 13:32 Der er 4 kommentarer og
1 løsning

søge funktion

Jeg er ved at lave en søge funktion, hvor det skal være muligt at skrive et søgeord, og så vælge hvilken sektion man søger i. ex. Man søger på ordet mand og vælger der efter om man vil søge i sektionen personer eller artikler.

Selve søgningen har jeg fået til at virke, men kan ikke helt huske hvordan jeg laver et tjek på de to checkboxe, så er der ikke en der vil skrive mig et lille eksempel på følgende:

jeg har nedenstående form på den eneside:

<form method="POST" action="soeg.asp?mode=soeg">
<p align="center"><b><font face="Verdana" size="3">På denne sode har du mulighed for at foretage søgning i alle oplysninger på siden</font></b></p>
<p align="center"><b><font face="Verdana" size="3">Indtast søgeord: </font></b><input type="text" name="Keyword" size="20"></p>

<p align="center"><b><font face="Verdana" size="3">Marker de områder du ønsker at søge i: </font></b></p>

<table border="0" width="11%" align="center">
  <tr>
    <td width="50%" align="left"><font size="3" face="Verdana"><b>Personer</b></font></td>
    <td width="50%" align="left"><input type="checkbox" name="C1" value="pers"></td>
  </tr>
  <tr>
    <td width="50%" align="left"><font size="3" face="Verdana"><b>Indlæg</b></font></td>
    <td width="50%" align="left"><input type="checkbox2" name="C1" value="pers"></td>
  </tr>
</table>
<p align="center"><input type="submit" value="Søg" name="soeg"></p>
</form>


------------------------------------------
Og der hvor den så føres hen skal jeg have lavet så den køre en sektion af koden hvis den ene checkbox er markeret og en hvis den anden er checket og hvis begge er checket skal den køre begge sektioner.

Så det jeg behøver at vide er sådan set bare hvordan jeg tjekker hvilke tjekboxe der er tjekket af på forgående side :-)
Avatar billede eagleeye Praktikant
17. september 2002 - 13:47 #1
jeg kan se en uheldig ting du har givet begge dine checkboxe samme navn. Så du vil ikke kunne skelne dem fra hinanden.

hvis du kalder den ene for person:
<input type="checkbox" name="person" value="pers">

og den anden for indleg:
<input type="checkbox" name="indleg" value="pers">


i asp koden kan du lave et tjek:

if request.form("person") <> "" then
  'Søg i person kolonnen

end if
if request.form("person") <> "" then
  'Søg (også) i indløg kolonnen

end if
Avatar billede eagleeye Praktikant
17. september 2002 - 13:47 #2
eks på koden:


SQLwhere = ""
if request.form("person") <> "" then
  'Søg i person kolonnen
  SQLwhere = "person = '" & request.form("keyword") & "'"
end if
if request.form("person") <> "" then
  'Søg (også) i indløg kolonnen
  if SQLwhere <> "" then SQLwhere = SQLwhere " OR "
  SQLwhere = SQLwhere & "indlæg = '" & request.form("keyword") & "'"
end if

SQL = "SELECT * FROM tabel"
if SQLwhere <> "" then
  SQL = SQL & " WHERE " & SQLwhere
end if

set rs=conn.execute(SQL)
Avatar billede moejensen Nybegynder
17. september 2002 - 16:05 #3
Det ser ud til at virke, men nu har jeg fået lavet en hel røvfuld kode, og hver sektion er delt op som det ses neden for. Mit problem er bare at jeg ikke kan få den til at skrive at der ikke er fundet nogen resultater på det rigtige sted. Min resultatside er delt op i to dele en der viser res af personer og en af Indlæg, så hvis ikke der er nogen personer i en søgning, så skal den skrive under det punkt der hedder personer, men i stedet skriver dne det øverst på siden, hvilket jeg ikke kan forstå.

Hver sektion Person resultat og Indlæg resultat er kodet som det ses nedenfor:

------------------kode start--------------
<% if request.form("person") <> "" then
    myConnPers.Open strDSNPers
    strSQL = "SELECT * FROM persondata WHERE"
    strSQL = strSQL & " (Name LIKE '%" & strKeyword & "%')"
    strSQL = strSQL & " OR (Adresse LIKE '%" & strKeyword & "%')"
    strSQL = strSQL & " OR (postnr LIKE '%" & strKeyword & "%')"
    strSQL = strSQL & " OR (bynavn LIKE '%" & strKeyword & "%')"
    strSQL = strSQL & " OR (Tlf LIKE '%" & strKeyword & "%')"
    strSQL = strSQL & " OR (mobil LIKE '%" & strKeyword & "%')"
    strSQL = strSQL & " OR (Email LIKE '%" & strKeyword & "%')"
    strSQL = strSQL & " OR (ICQ LIKE '%" & strKeyword & "%')"
    strSQL = strSQL & " OR (Foedselsdag LIKE '%" & strKeyword & "%')"
    strSQL = strSQL & " OR (klasse LIKE '%" & strKeyword & "%')"
    strSQL = strSQL & " OR (last_logedin LIKE '%" & strKeyword & "%')"
   
    Set rs = myConnPers.Execute(strSQL)%>
    <tr>
      <td width="581" height="6" bgcolor="#0000FF" colspan="3"><font face="Verdana" size="3"><b>Personer</b></font></td>
    </tr>
    <tr>
      <td width="168" height="5" bgcolor="#CCCCCC"><font face="Verdana" size="3">Navn</font></td>
      <td width="1" height="5" bgcolor="#CCCCCC"><font face="Verdana" size="3">Mobiltlf</font></td>
      <td width="146" height="5" bgcolor="#CCCCCC"><font face="Verdana" size="3">E-Mail</font></td>
    </tr>
    <%If Not (rs.BOF Or rs.EOF) Then%>
    <%Else
    Response.Write "<p>Der er ikke fundet noget på denne søgning</p>"
    End If%>
    <%Do While Not rs.EOF%>
    <tr>
      <td width="168" height="5"><font face="Verdana" size="1"><a href="vis_data_alt.asp?id=<%=Rs("ID")%>" onMouseOver="window.status='Mere Info om <%=Rs("Name")%>'; return true;" onMouseOut="window.status=''"><%=rs("Name")%></a></font></td>
      <td width="1" height="5"><font face="Verdana" size="1"><%=rs("mobil")%></font></td>
      <td width="146" height="5"><font face="Verdana" size="1"><a href="mailto:<%=rs("Email")%>"><%=rs("Email")%></a></font></td>
    </tr>
<%rs.MoveNext
Loop%>

<%
myConnPers.Close
Set myConnPers = Nothing
%>

-------------------kode slut ------------------

Sig til hvis du hellere vil se hele koden.

en sidste ting, ved du om der er en sql streng der kun hiver en del ud af et note felt, så man ikke får hele teksten ud, men kun den første del??
Avatar billede moejensen Nybegynder
18. september 2002 - 14:08 #4
Så vidt jeg kan se er problemet bare at jeg i følgende kode, ikke kan få den til at skrive ud at der ikke er nogen resultater efter at den har skrevet første del af tabellen ud....

--------------kode

    <tr>
      <td width="581" height="6" bgcolor="#0000FF" colspan="3"><font face="Verdana" size="3"><b>Personer</b></font></td>
    </tr>
    <tr>
      <td width="168" height="5" bgcolor="#CCCCCC"><font face="Verdana" size="3">Navn</font></td>
      <td width="1" height="5" bgcolor="#CCCCCC"><font face="Verdana" size="3">Mobiltlf</font></td>
      <td width="146" height="5" bgcolor="#CCCCCC"><font face="Verdana" size="3">E-Mail</font></td>
    </tr>
    <%If Not (rs.BOF Or rs.EOF) Then%>
    <%Else
    Response.Write "<p>Der er ikke fundet noget på denne søgning</p>"
    End If%>
    <%Do While Not rs.EOF%>
    <tr>
      <td width="168" height="5"><font face="Verdana" size="1"><a href="vis_data_alt.asp?id=<%=Rs("ID")%>" onMouseOver="window.status='Mere Info om <%=Rs("Name")%>'; return true;" onMouseOut="window.status=''"><%=rs("Name")%></a></font></td>
      <td width="1" height="5"><font face="Verdana" size="1"><%=rs("mobil")%></font></td>
      <td width="146" height="5"><font face="Verdana" size="1"><a href="mailto:<%=rs("Email")%>"><%=rs("Email")%></a></font></td>
    </tr>
----------------- kode slut
Avatar billede moejensen Nybegynder
22. september 2002 - 17:30 #5
Har selv fået klaret det andet problem, så jeg lukker spg nu. tak for hjælpen.
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