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
14 svar · 338 visningar · startad av devotion
: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
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
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
response.end avbryter körningen av asp-sidan.
en alert kan du slänga fram:
response.write "<script>alert('bövelskap!');</script>"
response.end
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
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
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.
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';
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
hur menar du?
Response.redirect "foo.asp?cmd=bövelskap"
foo.asp:
If request.querystring("cmd") = "bövelskap" then response.write "<script>alert('bövelskap!');</script>"
Hmmm, det kommer inte upp något meddelande, kan koden ligga högst upp på sidan som jag redirectar till?
Mvh
det beror ju lite på vad du gör på sidan du redirectar till...
Hmmm, det underlättar ju om man redigerar i rätt fil....
Funkar finfint @nders...
Tack!
Mvh
Henrik