Avatar billede jetkat Nybegynder
04. juli 2003 - 12:00 Der er 6 kommentarer og
1 løsning

Søgning flere ord

Tjah, nu virker min søgefunktion som splitter søgestrengen op og søger på alle søgeord perfekt. Problemet er nu bare, at resultaterne skal fungere som link til hhv. produkt og varegruppe.
Så langt - så godt. Problemet er nu bare, at mine 2 links til Detaljemenu og Varenavn kun linker til 1.ord i Detaljemenu og Varenavn. Resten er skåret væk - sikkert pga. split-funktionen i søgescriptet.

De to problemlinks:
Response.Write "<td width=120 bgcolor='" & bgcolor & "'>" & "<a href=prodframe.asp?Detaljemenu=" & Detaljemenu & ">" & Detaljemenu & "</a>"
Response.Write "<td bgcolor='" & bgcolor & "'>" & "<a href=prodframe.asp?Varenavn=" & Varenavn & ">" & Varenavn & "</a>"

Måske kan nogen se en løsning ?

<%
strDSN = "DRIVER={Microsoft Access Driver (*.mdb)};DBQ=" & Server.MapPath("/database/hovedmenu.mdb")
Set myCon = Server.CreateObject("ADODB.Connection")
myCon.Open strDSN

mode=Request("mode")
If mode="submit" Then

newstring = Request.Form("T1")

if len(newstring) = 0 Then
Response.Clear
Response.Redirect("forside.asp")

Else

newstring = Replace(newstring,"'","''")

End if

newsplit = split(newstring)

SQL = "SELECT * FROM Produkter"
SQLwhere = "("
for i = lbound(newsplit) to ubound(newsplit)
  if SQLwhere <> "(" then SQLwhere = SQLwhere & ") AND ("
  SQLwhere = SQLwhere & "Varenr LIKE '%" & newsplit(i) & "%' AND Webstatus='www'"
  SQLwhere = SQLwhere & " OR (Varenavn LIKE '%" & newsplit(i) & "%') AND Webstatus='www'"
  SQLwhere = SQLwhere & " OR (Varebeskrivelse LIKE '%" & newsplit(i) & "%') AND Webstatus='www'"
  SQLwhere = SQLwhere & " OR (Detaljemenu LIKE '%" & newsplit(i) & "%') AND Webstatus='www'"

next
if SQLwhere <> "(" then SQLwhere = SQLwhere & ") ORDER BY Detaljemenu ASC"

if SQLwhere <> "(" then SQL = SQL & " WHERE " & SQLwhere

Set rs = mycon.Execute(SQL)

If not (rs.BOF or rs.EOF) Then

Do while not rs.EOF

Pris=rs("Pris")
Varenavn=rs("Varenavn")
Varenr=rs("Varenr")
Detaljemenu=rs("Detaljemenu")

Dim v, bgcolor
if v = 1 then
bgcolor="ffffff"
v=2
Else
bgcolor="f2f2f2"
v=1
End if

Response.write "<TR width=100% >"
Response.Write "<td width=120 bgcolor='" & bgcolor & "'>" & "<a href=prodframe.asp?Detaljemenu=" & Detaljemenu & ">" & Detaljemenu & "</a>"
Response.Write "<td bgcolor='" & bgcolor & "'>" & "<a href=prodframe.asp?Varenavn=" & Varenavn & ">" & Varenavn & "</a>"
Response.Write "<td align=right width=90 bgcolor='" & bgcolor & "'>" & "<font style='font-size:8 pt;'>" & "(" & formatnumber((Pris),2) & ")"
Response.Write "<td align=right width=90 bgcolor='" & bgcolor & "'>" & formatnumber((Pris)*1.25)
Response.Write "<td align=right width=70 bgcolor='" & bgcolor & "'>" & "<form method='GET' action='shopcart.asp' onsubmit='return FrontPage_Form1_Validator(this)' name='FrontPage_Form1'><input type='submit' value='Køb' style='font-family: Verdana; font-size: 8 pt; color: #000000'><input name='Quantity' value='1' onclick=""this.value=''"" size='2' style='font-family: Verdana; font-size: 8 pt;'>" & "</td>"
Response.Write "<input type='hidden' name='Action' value='AddItem'><input type='hidden' name='Price' value='" & Pris & "'><input type='hidden' name='ProductID' value='" & Varenr & "'><input type='hidden' name='ProductName' value='" & Varenavn & "'></form>" & "</td>"

rs.movenext
loop

Else

Response.write "</td>"
Response.write "</tr>"

bla. bla. bla.
osv. osv. osv.
Avatar billede nielle Nybegynder
06. juli 2003 - 17:11 #1
HTML syntaksen for et link er:

<a href="prodframe.asp?Detaljemenu=Dette er en detalje">Detaljemenu</a>

Din version kommer til at se sådan her ud:

<a href=prodframe.asp?Detaljemenu=Dette er en detalje>Detaljemenu</a>

Uden de 2 "-tegn til at indikere hvor det hele starter og slutter vil den kun tage det første ord efter "Detaljemenu="
Avatar billede jetkat Nybegynder
06. juli 2003 - 20:44 #2
Jeg har prøvet forskellige muligheder uden held:

Følgende:
"<a href=prodframe.asp?Detaljemenu=" & Detaljemenu & ">" & Detaljemenu & "</a>"

Giver:
http://www.1234.dk/prodframe?Detaljemenu=socket

Følgende:
"<a href=prodframe.asp?Detaljemenu=' & Detaljemenu & '>" & Detaljemenu & "</a>"

Giver:
http://www.1234.dk/prodframe?Detaljemenu='

Følgende:
"<a href=prodframe.asp?Detaljemenu=(" & Detaljemenu & ")>" & Detaljemenu & "</a>"

Giver:
http://www.1234.dk/prodframe?Detaljemenu=(socket

Følgende:
"<a href=prodframe.asp?Detaljemenu=" & Detaljemenu & ">" & Detaljemenu & "</a>"

Giver:
http://www.1234.dk/prodframe?Detaljemenu=socket

Det rigtige link skal være noget der ligner:
http://www.1234.dk/prodframe?Detaljemenu=socket+478

Alt efter det første ord skæres altså væk - jeg KAN simpelthen ikke ramme den rigtige syntaks - hvis det altså bare er der fejlen ligger. Det skal lige siges, at teksten på linket er helt i orden, der kan den godt anerkende og skrive "socket 478".
Avatar billede nielle Nybegynder
06. juli 2003 - 20:57 #3
Ingen af dine eksempler har de 2 "-tegn som jeg allerede har fortalt dig at du mangler!

Hvis du vil udskrive et "-tegn i ASP, og uden at ASP derved tror tar du afslutter eller begynder en teskst-streng, så skal du skrive 2 "-tegn ligeefter hinanden: ""

Din Response.Write skal derfor se således ud:

Response.Write("<a href=""prodframe.asp?Detaljemenu=" & Detaljemenu & """>" & Detaljemenu & "</a>")
Avatar billede nielle Nybegynder
06. juli 2003 - 21:00 #4
Et alternativ er at droppe brugen af Response:Write og så gøre det på denne måde:

<%
' ASP kode her %>
<a href="prodframe.asp?Detaljemenu=<% =Detaljemenu %>"><% =Detaljemenu %></a>
<%
' ASP kode her %>
Avatar billede jetkat Nybegynder
07. juli 2003 - 07:58 #5
Hej Nielle

Jeg havde ikke lige fanget den med de to "-er. Det virker nu, tak skal du have. Smid mig lige et svar så jeg kan komme af med nogle points.
Avatar billede nielle Nybegynder
07. juli 2003 - 08:03 #6
Jeg synes nu tydeligt at det fremgår at mit 17:11:18 svar?
Avatar billede jetkat Nybegynder
07. juli 2003 - 09:41 #7
Det har du vist egentlig ret i, måske var jeg lidt for hurtig i vendingen, men tak alligevel :-)
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