Fetstil Fetstil Kursiv Understrykning linje färgläggning tabellverk Punktlista Nummerlista Vänster Centrerat högerställt Utfyllt Länk Bild htmlmode
  • Forum & Blog
    • Forum - översikt
      • .Net
        • asp.net generellt
        • c#
        • vb.net
        • f#
        • silverlight
        • microsoft surface
        • visual studio .net
      • databaser
        • sql-server
        • databaser
        • access
        • mysql
      • mjukvara klient
        • datorer och komponenter
        • nätverk, lan/wan
        • operativsystem
        • programvaror
        • säkerhet, inställningar
        • windows server
        • allmänt
        • crystal reports
        • exchange/outlook
        • microsoft office
      • mjukvara server
        • active directory
        • biztalk
        • exchange
        • linux
        • sharepoint
        • webbservers
        • sql server
      • appar (win/mobil)
      • programspråk
        • c++
        • delphi
        • java
        • quick basic
        • visual basic
      • scripting
        • asp 3.0
        • flash actionscript
        • html css
        • javascript
        • php
        • regular expresssion
        • xml
      • spel och grafik
        • DirectX
        • Spel och grafik
      • ledning
        • Arkitektur
        • Systemutveckling
        • krav och test
        • projektledning
        • ledningsfrågor
      • vb-sektioner
        • activeX
        • windows api
        • elektronik
        • internet
        • komponenter
        • nätverk
        • operativsystem
      • övriga forum
        • arbete karriär
        • erbjuda uppdrag och tjänster
        • juridiska frågor
        • köp och sälj
        • matematik och fysik
        • intern information
        • skrivklåda
        • webb-operatörer
    • Posta inlägg i forumet
    • Chatta med andra
  • Konto
    • Medlemssida
    • Byta lösenord
    • Bli bonsumedlem
    • iMail
  • Material
    • Tips & tricks
    • Artiklar
    • Programarkiv
  • JOBB
  • Student
    • Studentlicenser
  • KONTAKT
    • Om pellesoft
    • Grundare
    • Kontakta oss
    • Annonsering
    • Partners
    • Felanmälan
  • Logga in

Hem / Forum översikt / inlägg

Posta nytt inlägg


Querystringar

Postades av 2002-07-26 12:59:59 - Jimmy Nilsson, i forum asp - allmänt, Tråden har 5 Kommentarer och lästs av 441 personer

Jag har en sökfunktion som listar artiklar i en databas där jag använder paging med 10 st resultat per sida. Förstasidan kommer dom första 10 men när jag klickar på sid 2, sid 3 osv så blir de sidorna tomma. Någon vänlig själ som kan tänka sig att ta en titt på min kod. Formuläret ligger på en annan sida men den koden skickar jag inte med det är bara ett vanligt formulär med en combibox som söker på antingen artnr eller beskrivning och en textruta där man skriver in sökord.

<code>
<% Option Explicit %>
<!--#include virtual="adovbs.inc"-->
<html>
<head>
<link rel="stylesheet" href="stylesheet.css">
<title>

</title>
</head>
<body topmargin="0" leftmargin="0">
<!--Sidhuvud-->
<table width="788" height="100%" cellpadding="0" cellspacing="0" border="0">
<tr><td valign="top">
<center>
<!--Innehåll-->

<%
Session("user")
Session("pass")
%>
<!-- HÄR KOMMER SÖKNINGEN PÅ ARTIKELNUMMER-->
<!--#include file="connect.asp"-->
<%

Dim artsok, sokord, SQL, RS, RS2, intRecCount, intPageCount, intPage, intNum

artsok = Request.Form("artsok")
sokord = UCASE(Request.Form("sokord"))

If Request.Form("artsok") = "Artikelnummer" Then

intPage = Request.QueryString("page")
If isNumeric(intPage) = False Or intPage < 1 Then
intPage = 1
End If

If Request.Form("artsok") = False Then
artsok = Request.QueryString("artsok")
Else
artsok = Request.Form("artsok")
End if
If UCASE(Request.Form("sokord")) = False Then
sokord = UCASE(Request.QueryString("sokord"))
Else
sokord = UCASE(Request.Form("sokord"))
End if

Set RS = Server.CreateObject("ADODB.Recordset")
RS.PageSize = 10
RS.CursorLocation = adUseClient
RS.Open "SELECT Upper(""DE_CHSArtikelkod"") DE_CHSARTIKELKOD, Upper(F_LEFT(""DE_Beskrivning"",35)) DE_BESKRIVNING, Upper(""DE_Vikt"") DE_VIKT, Upper(""DE_CHSHuvudprislista"") DE_CHSHUVUDPRISLISTA, Upper(""DE_CHSListpris"") DE_CHSLISTPRIS, Upper(""DE_CHSRabattkod"") DE_CHSRABATTKOD FROM ""ARTIKELREGISTER"" WHERE ""DE_CHSHuvudprislista"" ='Y' AND ""DE_CHSArtikelkod"" LIKE '%" & sokord & "%'", Conn, adOpenStatic, adLockOptimistic


' Kollar om sökningen finns i databasen annars skriver den ut Response.Write
If RS.EOF Then

Response.Write "<center><div>Sökningen på <b>" & sokord & "</b> gav inga träffar.</center>"
Elseif not (RS.BOF Or RS.EOF) Then

RS.AbsolutePage = intPage
intRecCount = RS.PageSize
intPageCount = RS.PageCount

Response.Write "<div>Sida " & intPage & " av " & intPageCount
%>
<table border="0" width="780">
<%

'Visa sökresultat

Do While Not RS.EOF And intRecCount > 0

Response.Write "<tr><td width=180><div>" & RS("DE_CHSARTIKELKOD") & "</td><td width=350><div>" & RS("DE_BESKRIVNING") & "</td><td width=70><div>" & RS("DE_CHSLISTPRIS") & "</td><td width=45><div>-</td><td width=70><div>-</td><td width=65><div>" & DatePart("yyyy",Now) & DatePart("ww",Now) & "5</td>"

intRecCount = intRecCount - 1

RS.MoveNext
Loop

End If
RS.Close
Set RS = Nothing

%>

</table>
<center>
<%
If CLng(intPage) > 1 Then

Response.Write "<<"
Else
Response.Write "&lt;&lt;"
End If
Response.Write "&nbsp;&nbsp;&nbsp;"
For intNum = 1 To intPageCount
Response.Write "" & intNum & " "
Next
Response.Write "&nbsp;&nbsp;&nbsp;"
If Clng(intPage) < Clng(intPageCount) Then
Response.Write ">> "
Else
Response.Write "&gt;&gt;"
End If
%>
<!-- HÄR KOMMER SÖKNINGEN PÅ BESKRIVNING-->
<%
ElseIf Request.Form("artsok") = "Beskrivning" Then

intPage = Request.QueryString("page")
If isNumeric(intPage) = False Or intPage < 1 Then
intPage = 1
End If
Set RS2 = Server.CreateObject("ADODB.Recordset")
RS2.PageSize = 10
RS2.CursorLocation = adUseClient
RS2.Open "SELECT Upper(""DE_CHSArtikelkod"") DE_CHSARTIKELKOD, Upper(F_LEFT(""DE_Beskrivning"",35)) DE_BESKRIVNING, Upper(""DE_Vikt"") DE_VIKT, Upper(""DE_CHSHuvudprislista"") DE_CHSHUVUDPRISLISTA, Upper(""DE_CHSListpris"") DE_CHSLISTPRIS, Upper(""DE_CHSRabattkod"") DE_CHSRABATTKOD FROM ""ARTIKELREGISTER"" WHERE ""DE_CHSHuvudprislista"" ='Y' AND ""DE_Beskrivning"" LIKE '%" & sokord & "%'", Conn, adOpenStatic, adLockOptimistic




' Kollar om sökningen finns i databasen annars skriver den ut Response.Write
If RS2.EOF Then

Response.Write "<center><div>Sökningen på <b>" & sokord & "</b> gav inga träffar.</center>"
Elseif not (RS2.BOF Or RS2.EOF) Then

RS2.AbsolutePage = intPage
intRecCount = RS2.PageSize
intPageCount = RS2.PageCount

Response.Write "<div>Sida " & intPage & " av " & intPageCount

Response.Write "<table border=0 width=780>"

Do While Not RS2.EOF And intRecCount > 0

Response.Write "<tr><td width=180><div>" & RS2("DE_CHSARTIKELKOD") & "</td><td width=350><div>" & RS2("DE_BESKRIVNING") & "</td><td width=70><div>" & RS2("DE_CHSLISTPRIS") & "</td><td width=45><div>-</td><td width=70><div>-</td><td width=65><div>" & DatePart("yyyy",Now) & DatePart("ww",Now) & "5</td>"

intRecCount = intRecCount - 1

RS2.MoveNext
Loop

Response.Write "</table>"

If CLng(intPage) > 1 Then

Response.Write "<<"
Else
Response.Write "&lt;&lt;"
End If
Response.Write "&nbsp;&nbsp;&nbsp;"
For intNum = 1 To intPageCount
Response.Write "" & intNum & " "
Next
Response.Write "&nbsp;&nbsp;&nbsp;"
If Clng(intPage) < Clng(intPageCount) Then
Response.Write ">> "
Else
Response.Write "&gt;&gt;"
End If
End If
RS2.Close
Set RS2 = Nothing

End If
%>
</table>
<!--Sidfot-->
</td>
</table>
</body>
</html>
</code>


Svara

Sv: Querystringar

Postades av 2002-07-26 13:57:55 - Andreas Hillqvist

Problemet vara att du gjorde jämförelsen på Request.Form("artsok") i din if-sats. Har dels tagit bor onödig kod. Det som skiljde ifsatserna var ju bara SQL satsen:
<code>

<HTML>
<HEAD>
<META NAME="GENERATOR" Content="Microsoft Visual Studio 6.0">
<TITLE></TITLE></HEAD>
<BODY>
<P><!--Sidhuvud-->
<TABLE height="100%" cellSpacing=0 cellPadding=0 width=788 border=0>
<TR>
<TD vAlign=top>
<CENTER><!--Innehåll--><!--#include file="connect.asp"--><%
' Session("user")
' Session("pass")

Dim artsok, sokord, SQL, RS, intRecCount, intPageCount, intPage, intNum

intPage = Request.QueryString("page")
If Not isNumeric(intPage) Then
intPage = 1
ElseIf intPage < 1 Then
intPage = 1
End If

If Len(Request.Form("artsok")) Then
artsok = Request.Form("artsok")
Else
artsok = Request.QueryString("artsok")
End if

If Len(Request.Form("sokord")) Then
sokord = UCASE(Request.Form("sokord"))
Else
sokord = UCASE(Request.QueryString("sokord"))
End if

Set RS = Server.CreateObject("ADODB.Recordset")
RS.PageSize = 10
RS.CursorLocation = adUseClient

Select case artsok
Case "Artikelnummer"
%><!-- HÄR KOMMER SÖKNINGEN PÅ ARTIKELNUMMER--><%
RS.Open "SELECT Upper(""DE_CHSArtikelkod"") DE_CHSARTIKELKOD, Upper(F_LEFT(""DE_Beskrivning"",35)) DE_BESKRIVNING, Upper(""DE_Vikt"") DE_VIKT, Upper(""DE_CHSHuvudprislista"") DE_CHSHUVUDPRISLISTA, Upper(""DE_CHSListpris"") DE_CHSLISTPRIS, Upper(""DE_CHSRabattkod"") DE_CHSRABATTKOD FROM ""ARTIKELREGISTER"" WHERE ""DE_CHSHuvudprislista"" ='Y' AND ""DE_CHSArtikelkod"" LIKE '%" & sokord & "%'", Conn, adOpenStatic, adLockOptimistic
Case Else '"Beskrivning" Default om parameter skulle saknas
%><!-- HÄR KOMMER SÖKNINGEN PÅ BESKRIVNING--><%
RS.Open "SELECT Upper(""DE_CHSArtikelkod"") DE_CHSARTIKELKOD, Upper(F_LEFT(""DE_Beskrivning"",35)) DE_BESKRIVNING, Upper(""DE_Vikt"") DE_VIKT, Upper(""DE_CHSHuvudprislista"") DE_CHSHUVUDPRISLISTA, Upper(""DE_CHSListpris"") DE_CHSLISTPRIS, Upper(""DE_CHSRabattkod"") DE_CHSRABATTKOD FROM ""ARTIKELREGISTER"" WHERE ""DE_CHSHuvudprislista"" ='Y' AND ""DE_Beskrivning"" LIKE '%" & sokord & "%'", Conn, adOpenStatic, adLockOptimistic
End Select

' Kollar om sökningen finns i databasen annars skriver den ut Response.Write
If RS.EOF Then
Response.Write "<center><div>Sökningen på " & sokord & " gav inga träffar.</center>"
Else
RS.AbsolutePage = intPage
intRecCount = RS.PageSize
intPageCount = RS.PageCount

Response.Write "<div>Sida " & intPage & " av " & intPageCount
%>
<TABLE width=780 border=0>
<%

'Visa sökresultat
Do
Response.Write "<tr><td width=180><div>" & RS("DE_CHSARTIKELKOD") & "</td><td width=350><div>" & RS("DE_BESKRIVNING") & "</td><td width=70><div>" & RS("DE_CHSLISTPRIS") & "</td><td width=45><div>-</td><td width=70><div>-</td><td width=65><div>" & DatePart("yyyy",Now) & DatePart("ww",Now) & "5</td>"

intRecCount = intRecCount - 1

RS.MoveNext
Loop Until RS.EOF Or intRecCount <= 0
End If
RS.Close
Set RS = Nothing

%>
</TABLE>
<CENTER>
<%
If CLng(intPage) > 1 Then
Response.Write "<<"
Else
Response.Write "&lt;&lt;"
End If
Response.Write "&nbsp;&nbsp;&nbsp;"
For intNum = 1 To intPageCount
IF intNum = intPage Then
Response.Write "" & intNum & " "
Else
Response.Write "" & intNum & " "
End If
Response.Write "&nbsp;"
Next
Response.Write "&nbsp;&nbsp;&nbsp;"
If Clng(intPage) < Clng(intPageCount) Then
Response.Write ">> "
Else
Response.Write "&gt;&gt;"
End If

%></CENTER></CENTER></TR></TABLE>
<!--Sidfot--></TD></TABLE></P>

</BODY>
</HTML>
</code>


Svara

Sv: Querystringar

Postades av 2002-07-26 14:27:22 - Jimmy Nilsson

jag får sökningen gav inga träffar på din kod


Svara

Sv: Querystringar

Postades av 2002-07-26 15:13:38 - Ulf Elfving

Om det är nedanstående rad(er) som producerar ditt svar:

<code>
' Kollar om sökningen finns i databasen annars skriver den ut Response.Write
If RS.EOF Then
Response.Write "<center><div>Sökningen på " & sokord & " gav inga träffar.</center>"
Else

</code>

så verkar det som om din variabel sokord, inte innehåller någonting.

Skickar du dina parametrar med querystring eller form? Du har en hel del if satser:

<code>
If UCASE(Request.Form("sokord")) = False Then
sokord = UCASE(Request.QueryString("sokord"))
Else
sokord = UCASE(Request.Form("sokord"))
End if
</code>

kunde kanske i så fall kortas ner till:

<code>
sokord = UCASE(Request("sokord"))
</code>

vilket ger samma sak, då slipper du en massa kontroller gentemot både form och querystring



Svara

Sv: Querystringar

Postades av 2002-07-26 15:20:57 - Jimmy Nilsson

Jag skickar sökningen med form men sen när jag klickar på länkarna måste jag väl använda querystring?

Jag bytte ut
<code>
<%
If Request.Form("artsok") = False Then
artsok = Request.QueryString("artsok")
Else
artsok = Request.Form("artsok")
End if
If UCASE(Request.Form("sokord")) = False Then
sokord = UCASE(Request.QueryString("sokord"))
Else
sokord = UCASE(Request.Form("sokord"))
End if
%>
</code>

till

<code>
<%
artsok = Request("artsok")
sokord = UCASE(Request("sokord"))
%>
</code>

men får fortfarande tom sida när jag klickar på sida 2, 3 osv


Svara

Sv: Querystringar

Postades av 2002-07-26 15:24:35 - Jimmy Nilsson

haha nu fungerar det, jag glömde byta ut en request.form till. Tackar för assistansen!


Svara

Nyligen

  • 08:28 Butiksskyltar: Hur upplever utbude
  • 22:31 Slappna av
  • 19:55 kick-off med fokus på hälsa?
  • 19:53 kick-off med fokus på hälsa?
  • 16:24 Föreslå en skönhetsklinik online
  • 16:23 Föreslå en skönhetsklinik online
  • 18:42 Hvor finder man håndlavede lamper
  • 18:41 Hvor finder man håndlavede lamper

Sidor

  • Hem
  • Bli bonusmedlem
  • Läs artiklar
  • Chatta med andra
  • Sök och erbjud jobb
  • Kontakta oss
  • Studentlicenser
  • Skriv en artikel

Statistik

Antal besökare:
Antal medlemmar:
Antal inlägg:
Online:
På chatten:
4 570 830
27 960
271 761
2 996
0

Kontakta oss

Frågor runt konsultation, rådgivning, uppdrag, rekrytering, annonsering och övriga ärenden. Ring: 0730-88 22 24 | pelle@pellesoft.se

© 1986-2013 PelleSoft AB. Last Build 4.1.7169.18070 (2019-08-18 10:02:21) 4.0.30319.42000
  • Om
  • Kontakta
  • Regler
  • Cookies