webForumDet fria alternativet

Felmeddelande vid sökning

ASP

14 svar · 338 visningar · startad av devotion

Medlem sedan jan. 20013 582 inlägg
Frågan#1

:e
Hej!

Jag har följande kod som söker ut ett artikelnummer ur en sträng, jämför med artikeldatabasen och ersätter.

<%
Dim strArticleName, iArticleId, strEnumber

strArticleName = request.Querystring("articleName")
iArticleId = request.QueryString("articleId")

' Reguljärt uttryck för att matcha sju siffror efter varandra
dim re
set re = new regexp
re.pattern = "\d{7}"

' Med execute() får vi ut en array av träffar
' Eftersom global-flaggan ej är satt, kan vi endast få en träff och den ligger i m(0)
dim m
set m = re.execute(strArticleName)

if m.count then
	strEnumber = m(0)
end if

set re = nothing

Set objConn = Server.CreateObject("ADODB.Connection")
objConn.ConnectionString = "DSN=intranetSydostel"
objConn.Open 

strSQL = "SELECT * " &_
		 "FROM tblArticle " &_
		 "INNER JOIN tblPrice ON tblArticle.eNumber = tblPrice.eNumber " &_
		 "WHERE tblArticle.Enumber = '" & strEnumber &  "'"

Set objRS = Server.CreateObject("ADODB.Recordset")
objRS.Open strSQL, objConn, 3, 1

If objRS.EOF then
	Response.Write "Det fanns inget artikel med det E-numret i databasen!"
Else
	strArticleName = objRS("articleName") 
	strArticleUnit = objRS("articleUnit")
	iArticlePrice = Clng(objRS("articlePrice")/100)
End If

objRS.Close
Set objRS = Nothing
objConn.Close
Set objConn = Nothing

Set objConn = Server.CreateObject("ADODB.Connection")
objConn.ConnectionString = "DSN=uppdragNu"
objConn.Open 

strSQL = "UPDATE tblmaterial SET Modified = #" & Now() & "#, ArtNr = '" & strEnumber & "', ArtName = '" & strArticleName & "', Price = " & iArticlePrice & " " &_
	  	 "WHERE Id = " & iArticleId & ""
objConn.Execute strSQL,, 128

objConn.Close
Set objConn = Nothing

Response.redirect "viewMtrl.asp"
%>

Nu skulle jag vilja ha lite felmeddelande, dels om strängen inte innehåller ett 7-siffrigt artikelnummer; "Det finns inget giltigt artikelnummer! (Ok!)"

och dels om det finns ett 7-siffrigt artikelnummer i strängen, men det finns inget som matchar i artikeldatabasen; "Artikelnummer: XXXXXXX finns ej (Ok!"

Har gjort några taffliga försök, men ej lyckats...

Är det någon som kan hjälpa mig på traven??

Mvh
Henrik

Medlem sedan juni 200032 967 inlägg
#2
if m.count then
	strEnumber = m(0)
else
	response.write "Bövelskap! Inget Enummer!"
	response.end ' eller annat
end if
...
If objRS.EOF then
	Response.Write "Det fanns inget artikel med e-numret " & strEnumber & " i databasen!"
Else

mvh

Medlem sedan jan. 20013 582 inlägg
#3

ok!

Vad används response.end till?

Hur får jag till en liten alert där jag måste klicka på ok!?

Jag vill ju inte att response.redirect ska köras om det inte blir någon träff, gör den det med ditt exempel

Mvh
Henrik

Medlem sedan juni 200032 967 inlägg
#4

response.end avbryter körningen av asp-sidan.

en alert kan du slänga fram:

response.write "<script>alert('bövelskap!');</script>"
response.end
Medlem sedan jan. 20013 582 inlägg
#5

Oki!

Men, jag kanske tänkt fel... sidan som har listar posterna med artiklar här ju länken till "updateArticle.asp och i den filen så länkas man tillbaka till "articleList.asp"

Men sidan blir ju blank nu eftersom det inte blir nån redirect...

Har jag tänkt galet, eller är det bara nåt skitfel?

Mvh
Henrik

Medlem sedan jan. 20013 582 inlägg
#6

Hmm

Kan man inte göra så här:

if m.count then
	strEnumber = m(0)
else
	response.write "<script>alert('bövelskap!');</script>"
	response.redirect "viewMtrl.asp"
end if

då laddas ju sidan om men det kommer inte upp något meddelande....

//Henrik

Medlem sedan nov. 200529 inlägg
#7

Vet inte om jag misstolkade det du skrev men om du hoppar mellan två sidor så skulle du ju kunna göra såhär:

På sidan där du vill lista posterena:

If session("fel") = 1 THEN
Response.Write "response.write "<script>alert('dämnit!');</script>"
Session.Abandon
End If

På den andra sidan sätter du in:

Session("fel") = 1
Response.Redirect(sidan.asp)

I din If-sats om det inte blir en lyckad sökning.

Säkerligen inte det bästa alternativet men en tanke iaf, om jag nu förstog dig rätt.

Medlem sedan juni 200032 967 inlägg
#8

Kan man inte göra så här:

Nej, asp-koden körs ju innan resultatet skickas till webbläsaren, så scriptet kommer ju aldrig komma fram. Skicka vidare med javascript istället.

location.href='foo.asp';
Medlem sedan jan. 20013 582 inlägg
#9

hmm det funakr ju!

	response.write "<script>alert('bövelskap!');</script>"
	response.write "<script>location.href='viewMtrl.asp';</script>"
	response.end

men jag får ju se den vita (den tomma upDateArticle.asp) sidan innan jag länkas tillbaka till viewMtr.asp, det är inte så snyggt, kan man göra på någe annat sätt. Jag vill ju bara se meddelanderutan "på" viewMtrl.asp s a s

Mvh
Henrik

Medlem sedan juni 200032 967 inlägg
#10

Då får du ta en response.redirect till sidan och när du kommer fram dit slänga upp alert:en.

mvh

Medlem sedan jan. 20013 582 inlägg
#11

hur menar du?

Medlem sedan juni 200032 967 inlägg
#12
Response.redirect "foo.asp?cmd=bövelskap"

foo.asp:

If request.querystring("cmd") = "bövelskap" then response.write "<script>alert('bövelskap!');</script>"
Medlem sedan jan. 20013 582 inlägg
#13

Hmmm, det kommer inte upp något meddelande, kan koden ligga högst upp på sidan som jag redirectar till?

Mvh

Medlem sedan juni 200032 967 inlägg
#14

det beror ju lite på vad du gör på sidan du redirectar till...

Medlem sedan jan. 20013 582 inlägg
#15

Hmmm, det underlättar ju om man redigerar i rätt fil....

Funkar finfint @nders...

Tack!

Mvh
Henrik

258 ms totalt · 4 externa anrop · v20260731065814-full.1dc6f849
125 ms — deklarationer (db)
0 ms — hämta statistik (cache)
130 ms — hämta tråd, inlägg och bilagor (db)
120 ms — ändringar (db)