Avatar billede snokey Nybegynder
31. december 2009 - 13:22 Der er 3 kommentarer og
1 løsning

Giv fejl hvis form er tom.

Har en tilmeldning side, hvor jeg godt kunne tænke mig den kommer med en fejl hvis ikke alle 3 felter er udfyldt.
Kode:
<%
Set Conn = Server.CreateObject("ADODB.Connection")
DSN = "DRIVER={Microsoft Access Driver (*.mdb)}; "
DSN = DSN & "DBQ=" & Server.MapPath("db.mdb")
Conn.Open DSN

if request.form("fornavn") <> "" or
if request.form("efternavn") <> "" or
if request.form("rating") <> ""
then

Response write("Alle felter skal udfyldes")
else

strSQL = "Insert into personer (fornavn, efternavn, rating) values('" & Request.Form("Fornavn")  & "','" & Request.Form("efternavn")  & "','" & Request.Form("rating") & "') "
end if
end if
end if
Conn.Execute(strSQL)
Conn.Close
Set Conn = Nothing
%>
<h1>Du er nu tilmeldt!!!</h1>
</body>
</html>

FEJL meddelse


Microsoft VBScript compilation  error '800a03ea'

Syntax error

/chresten/gem_data.asp, line 15

if request.form("fornavn") <> "" or
-----------------------------------^
Avatar billede The Real Yoda Juniormester
31. december 2009 - 13:30 #1
ville mene det er smartest at hive formen ind til variabler før du gør andet..
så ..

fornavn = request.form("fornavn")
efternavn = request.form("efternavn")
rating = request.form("rating")

Fejl = 0

if len(fornavn)<2 then fejl = 1
if len(efternavn)<2 then fejl = 1
if len(rating)<1 then fejl = 1

if fejl = 1 then
  Response write("Alle felter skal udfyldes")
else
......

Så er det også meget nemmere at lave flere "fejl-kriterier" og du har også variablerne klar til at sætte i databasen ..
Avatar billede snokey Nybegynder
31. december 2009 - 14:20 #2
Altså det virker efter til små justeringer.. Men den kommer med en fejl under line "alle felter skal udfyldes"

Microsoft OLE DB Provider for ODBC Drivers error '80040e07'

[Microsoft][ODBC Microsoft Access Driver] Data type mismatch in criteria expression.

/chresten/gem_data.asp, line 32





<%
Set Conn = Server.CreateObject("ADODB.Connection")
DSN = "DRIVER={Microsoft Access Driver (*.mdb)}; "
DSN = DSN & "DBQ=" & Server.MapPath("db.mdb")
Conn.Open DSN

Fornavn = request.form("fornavn")
efternavn = request.form("efternavn")
rating = request.form("rating")

Fejl = 0

if len(fornavn)<2 then fejl = 1
if len(efternavn)<2 then fejl = 1
if len(rating)<1 then fejl = 1

if fejl = 1 then
  Response.write("Alle felter skal udfyldes")
else
end if
strSQL = "Insert into personer (fornavn, efternavn, rating) values('" & Request.Form("Fornavn")  & "','" & Request.Form("efternavn")  & "','" & Request.Form("rating") & "') "


Conn.Execute(strSQL)  ((((((Linje))))=32
Conn.Close
Set Conn = Nothing
%>
Avatar billede tjens Nybegynder
31. december 2009 - 15:31 #3
Du skal vel ikke udføre sql'en når der gives fejlmelding?

end if skal evt flyttes:
...
if fejl = 1 then
  Response.write("Alle felter skal udfyldes")
else
  strSQL = "Insert into personer (fornavn, efternavn, rating) values('" &  Request.Form("Fornavn")  & "','" & Request.Form("efternavn")  & "','" & Request.Form("rating") & "') "
  Conn.Execute(strSQL)
end if
Conn.Close
Set Conn = Nothing
%>

eller endnu bedre: Flytte alt vedr. connection/driver/open/execute/close inden for else
Avatar billede snokey Nybegynder
01. januar 2010 - 22:04 #4
<html>

<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
<title>Vis tilmeldte</title>
</head>
<script type="text/javascript">
function MinPopUp(MinURL)  {
window.open(MinURL,'popup','height=150,width=500');

}
</script>

<body>
<p align="center">
<a href="" onclick="MinPopUp('tilmeld.htm');return false;">
Tilmeld dig ved at klikke her</a>
</p>
<%

Set Conn = Server.CreateObject("ADODB.Connection")
Conn.Open "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & server.MapPath("db.mdb")

SQLstmt = "Select * From personer Order by rating Desc"
'
'response.write SQLstmt

Conn.Execute (SQLstmt)

Set rs = conn.Execute(SQLstmt)
  %>
<table border="1" cellspacing="0" cellpadding="0" width="20%" align="center">
    <tr >
        <td>Fornavn:</td>
        <td>Efternavn:</td>
        <td>Rating:</td>
        <tr >
      <%
  DO WHILE NOT rs.EOF
    fornavn = rs("fornavn")
    efternavn = rs("efternavn")
    rating = rs("rating")
    id = rs("id")
    %>
   
   

        <td><%=fornavn%></td>
        <td><%=efternavn%></td>
        <td><%=rating%></td>

<tr>

     
      <%
    rs.MoveNext
  LOOP
  RS.Close

conn.Close
Set conn = nothing
Set SQLstmt = nothing
    %>     
    </tr>
</table>
   

</body>

</html>
Sådan kom koden til at se ud ^^


Det virker. 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