Avatar billede snebolle Nybegynder
31. oktober 2002 - 17:02 Der er 9 kommentarer og
1 løsning

Undgå fejl ved indtastning i en formular!

Hej,
Jeg har på nedenstående side en formular med 2 felter. Hvis man ikke skrive noget i den en eller den anden eller slet ikke i nogle, så kommer der en fejl.
Jeg har prøvet flere kode som skriver en tekst om at man mangler at indtaste, men jeg kan bare ikke få sat det ind på siden :(
Hvis det kræver flere point end der er så sig det fordi jeg kommer aldrig selv videre..

<%
strDSN = "DRIVER={Microsoft Access Driver (*.mdb)};DBQ=" & Server.MapPath("../navn.mdb")

Function DBFix(tempString)
    tempString = Replace(Trim(tempString), "'", "''")
    tempString = Replace(tempString, "|", "")
    DBFix = tempString
End Function
%>
<%

Set myConn = Server.CreateObject("ADODB.Connection")
myConn.Open strDSN
Posted = 0

Set Con = Server.CreateObject("ADODB.Connection")
Con.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & server.mappath("../navn.mdb")
strSQL = "Select brugernavn, brugeremail From bruger Where brugernavn = '" & session("brugernavn") & "' "
Set rs = con.Execute(strSQL)

strEmail = rs("brugeremail")

If Len(Trim(Request.Form("Subject"))) = 0 AND Len(Trim(Request.Form("Comment"))) = 0 Then
    strSQL = "SELECT * FROM Forums WHERE (ID = " & Request("ForumID") & ")"
    Set rs = myConn.Execute(strSQL)
    If Not (rs.BOF Or rs.EOF) Then
        intForumID = rs("ID")
        strForum = rs("Forum")
        strMygroup = rs("Mygroup")
    End If
Else

    strSQL = "INSERT INTO Entries"
    If Len(Trim(Request.Form("MessageId"))) = 0 Then
        strSQL = strSQL & " (Name, Email, Subject, Comment, category, ForumId, Orgthread)"

        strSQL = strSQL & " VALUES('" & DBFix(Trim(session("brugernavn"))) & "', '" & DBFix(Trim(strEmail)) & "', '" & DBFix(Trim(Request.Form("Subject"))) & "', '" & DBFix(Trim(Request.Form("Comment"))) & "', '" & DBFix(Trim(Request.Form("category"))) & "', '" & DBFix(Trim(Request("ForumId"))) & "', TRUE);"

    Else
        tempSQL = "SELECT Subject FROM Entries WHERE (Id = " & Request("MessageId") & ")"
        Set tempRS = myConn.Execute(tempSQL)
        strSQL = strSQL & " (Name, Email, Comment, category, ForumId, ReplyId, Subject)"

        strSQL = strSQL & " VALUES('" & DBFix(Trim(session("brugernavn"))) & "', '" & DBFix(Trim(strEmail)) & "', '" & DBFix(Trim(Request.Form("Comment"))) & "', '" & DBFix(Trim(Request.Form("category"))) & "', '" & DBFix(Trim(Request("ForumId"))) & "','" & DBFix(Trim(Request("MessageId"))) & "','" & DBFix(Trim(tempRS("Subject"))) & "' );"

        tempRS.Close
    End If
    myConn.Execute(strSQL)
    Posted = 1
End If
myConn.Close

%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
<HEAD>
<META NAME="Generator" CONTENT="Stone's WebWriter 3.5">
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
    <TITLE>Titel</TITLE>
</HEAD>
<BODY>
<%
If Len(Trim(Request.Form("Subject"))) = 0 AND Len(Trim(Request.Form("Comment"))) = 0 Then
%>Inden du opretter et spørgsmål skal du være sikker på at du står i den rigtige kategori.<BR><BR>
<form method="POST" action="opretspm.asp">
<input type="hidden" name="ForumID" value="<%=intForumID%>">
<input type="hidden" name="MessageID" value="<%=Trim(Request("MessageID"))%>">
<input type="hidden" name="category" value="<%=strForum%>">
<B>Formular</B><BR><IMG SRC="../images/linie.gif" BORDER="0" WIDTH="100%" HEIGHT="1" ALIGN="bottom" ALT=""><TABLE WIDTH="100%" BORDER="0" CELLSPACING="1" CELLPADDING="2">
<TR>
    <TD>Kategori:</TD>
    <TD><B><%=strMygroup%></B>&nbsp;<IMG SRC="../images/pil.gif" BORDER="0" WIDTH="11" HEIGHT="8" ALIGN="bottom" ALT=""><A HREF="kategori.asp?ForumId=<%=intForumID%>"><%=strForum%></A></TD>
</TR>
<TR>
    <TD>Titel:</TD>
    <TD><INPUT TYPE="text" SIZE="40" MAXLENGTH="50" NAME="Subject"></TD>
</TR>
<TR VALIGN="top">
    <TD>Spørgsmål:&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    <TD><TEXTAREA WRAP="physical" ROWS="7" COLS="55" NAME="Comment"></TEXTAREA><BR><input type="image" value="Send" name="Action" SRC="../images/knspm.gif"></TD>
</TR>
</TABLE><BR><BR>Efter du har trykket på opret spørgsmål kan der gå lidt tid. Vær derfor opmærksom på at dit spørgsmål ikke bliver oprettet to gange.</form><% Else %>
<BR>Dit indlæg er nu oprettet i forumet<BR><IMG SRC="../images/pil.gif" BORDER="0" WIDTH="11" HEIGHT="8" ALIGN="bottom" ALT=""><A HREF="default.asp">Forum oversigt</A>
<% End If %>
Avatar billede somaliomar Praktikant
31. oktober 2002 - 17:05 #1
Hvad er det du vil helt præcist?
Avatar billede eagleeye Praktikant
31. oktober 2002 - 17:10 #2
Det kan gøre på to måder... Enten med et javascritp som tjekker form inden den bliver send at den er udfyldt rigtigt..
Eller på den side som modtager formen tjekke på at data modtager kan bruges eller viser den en fejl besked.
Avatar billede snebolle Nybegynder
31. oktober 2002 - 17:10 #3
Have gjort sådan at der ikke kommer fejl hvis nogle folk bare trykker på "Send" og ikke har indtastet noget i formularene.
Avatar billede snebolle Nybegynder
31. oktober 2002 - 17:20 #4
eagleeye >> Jep har også fået det til at virke på en simpel side som her http://www.3dekspert.dk/community/login.asp men ovenstående side er for kompliceret til at jeg kan lave det der. Har prøvet siden middag i dag ;(
Avatar billede eagleeye Praktikant
31. oktober 2002 - 17:38 #5
Så du vil havde det som her: http://www.3dekspert.dk/community/login.asp ?
Avatar billede eagleeye Praktikant
31. oktober 2002 - 17:44 #6
Eks vis kan du rette denne:

If Len(Trim(Request.Form("Subject"))) = 0 AND Len(Trim(Request.Form("Comment"))) = 0 Then

Til:

If Len(Trim(Request.Form("Subject"))) = 0 OR Len(Trim(Request.Form("Comment"))) = 0 Then

Så vil den kun indsætte i databasen hvis begge felter er udfyldt.
Avatar billede snebolle Nybegynder
31. oktober 2002 - 18:01 #7
Åååh jeg har ellers prøvet alt med den linie både > osv. men dog ikke OR. Så du redder mig endnu engang tusind tak. Afgiv svar så du kan få de point.

Nu hvor jeg har dig så vil jeg lige spørge om én ting mere. Når man kommer ind på opret spørgsmål siden (ovenstående side) så har jeg en forumid i min url f.eks. opretspm.asp?ForumId=5
Kan jeg få den Forumid med over på siden når man har trykket på "opret" ? Så jeg kan skrive den efter ELSE her <% Else %> <BR>Dit indlæg er nu oprettet i forumet.

Kan det forståes ?
Avatar billede eagleeye Praktikant
31. oktober 2002 - 18:08 #8
Du gemmer forumID på formen:

<input type="hidden" name="ForumID" value="<%=intForumID%>">


Så intForumID skal hendtes fra querystring oppe i toppen af siden.:

intForumID = Request("ForumID")
Avatar billede eagleeye Praktikant
31. oktober 2002 - 18:08 #9
Eller har jeg misforstået det med forumID?
Avatar billede snebolle Nybegynder
31. oktober 2002 - 18:17 #10
Jep kanon lige præcis det.
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

IT-JOB