Avatar billede kbs2 Nybegynder
22. september 2005 - 13:38 Der er 5 kommentarer og
1 løsning

asp formular

Hej

Jeg har lavet en tilmeldingsformular i asp. Den skriver alt indholdet til en acces database. Selve overførslen er fin nok, men der er dog et problem.

I formularen, kan man tilmelde en eller flere personer. Dvs at man ikke nødvendigvis skal udfylde alle felter. Hvis jeg springer et felt over, så overføres værdierne ikke til databasen, og siden virker ikke.

Jeg er php nørd og ikke asp nørd, så jeg ved ikke hvor og hvad jeg skal gøre.

Jeg har "vedhæftet" koden her, måske kan en venlig person hjlæpe
Avatar billede kbs2 Nybegynder
22. september 2005 - 13:41 #1
end function

    OpenConn("guestbook.mdb")
   
    if request ("mode") = "opret" then
        SQL = "insert into guestbook (navn, efternavn, bynavn, postnr, comments, email, firmanavn, CVR, adresse, pers1, pers2) values ('" & request("navn") & "','" & request("postnr") & "','" & request("bynavn") & "','" & request("efternavn") & "', '" & request("comments") & "', '" & request("email") & "', '" & request("firmanavn") & "', '" & request("CVR") & "', '" & request("adresse") & "', '" & request("pers1") & "','" & request("pers2") & "')"
        Conn.execute( SQL )
        Besked = "<font size=2>Vi har modtaget din tilmelding. Du vil høre fra os snarest</font>"
       
    end if

%>
<html>
<head>
<title>Tilmeldingsformular</title>
<link rel="stylesheet" type="text/css" href="file:///W|/html/general/styles.css">

</head>
<body bgcolor="white">
<p class="ny_broed">
  <% = besked %>
  <% = besked2 %>
  <% if request ("mode") = "" then %>
</p>
<p class="broed">Velkommen til  tilmelding</p>
<p class="broed">Indtast venligst dine data i nedenst&aring;ende formular. <br>
  <br>
  Felter med * skal udfyldes
</p>
<form action="tilmelding.asp" name=action>
  <p>
  <input type="hidden" Name="Mode" Value="opret">
  <input type="hidden" Name="guest_id" Value="<% = Request("guest_id")%>">
 
  <span class="menu">Navn : </span><br>
  <INPUT type="text" name=navn>
  *<br>   
  <br>
 
  <span class="menu">Efternavn : </span><br>
  <input type="text" name=efternavn> 
  <span class="style1">*
  <br>
  <br>
  </span><span class="menu">Firmanavn</span><span class="style1"><br>
  <INPUT name=firmanavn type="text" id="firmanavn">
  *<br>
  <br>
  <span class="menu">CVR</span><br>
  <INPUT name=CVR type="text" id="CVR">
  *<br>
  <br>
  </span><span class="menu">Adresse <br>
  </span><span class="style1">
    <INPUT name=adresse type="text" id="adresse">
*  </span></p>
  <table width="50%"  border="0">
    <tr>
      <td width="25%"><span class="menu">Postnr</span>        <input name=postnr type="text" id="postnr3" size="4" maxlength="4">
      </td>
      <td width="75%"><span class="menu">Bynavn</span>        <input name=bynavn type="text" id="bynavn2">
        *
      </td>
    </tr>
  </table>
  <p><span class="left">E-mail : </span><br>
    <INPUT type="text" name=email>
  <span class="style1">*</span></p>
  <p><span class="menu">Navn p&aring; p&aring; person 1</span> <br>
    <INPUT name=pers1 type="text" id="pers1" size="40">
    <br>
    <br>
    <span class="menu">Navn p&aring; person 2
    </span><br>
    <INPUT name=pers2 type="text" id="pers13" size="40">
    <br>
    <br>
     
    <span class="menu">Kommentar : </span><br>
    <TEXTAREA rows=4 cols=35 name=comments>
    </TEXTAREA>
    <br>
    <br>
    <br>
    <br>
    <br>
    <input type="Submit" Value="Send" name=Submit1>
    <input type="Reset" Value="Slet" name=Reset1>
    <br>
    <br>
  </p>
</form>

<% End If

%>


</body>
</html>
Avatar billede ldanielsen Nybegynder
22. september 2005 - 14:11 #2
Når du er ny til ASP vil jeg vise dig den smarte måde at inserte (og update) på. Desuden sørger jeg for at lukke forbindelsen efter mig, hvilket jeg ikke kan se at du gør. Functionen OpenConn regner jeg med laver en Connection af typen ADODB.Connection.


if request ("mode") = "opret" then

  OpenConn("guestbook.mdb")
  Dim Com, Rec
  Set Com = Server.CreateObject("ADODB.Command")
  Set Rec = Server.CreateObject("ADODB.RecordSet")
  Com.ActiveConnection = Conn

  Com.CommandText = "SELECT TOP 1 navn, efternavn, bynavn, postnr, comments, email, firmanavn, CVR, adresse, pers1, pers2 FROM guestbook"

  Rec.Open Com, , 3, 3
  Rec.AddNew

  Rec("navn") = request("navn")
  Rec("efternavn") = request("efternavn")
  Rec("bynavn") = request("bynavn")
  Rec("postnr") = request("postnr")
  Rec("comments") = request("comments")
  Rec("email") = request("email")
  Rec("firmanavn") = request("firmanavn")
  Rec("CVR") = request("CVR")
  Rec("adresse") = request("adresse")
  Rec("pers1") = request("pers1")
  Rec("pers2 ") = request("pers2")

  Rec.Update

  Rec.Close
  Conn.Close
  Set Conn = Nothing
  Set Com = Nothing
  Set Rec = Nothing
 
  Besked = "<font size=2>Vi har modtaget din tilmelding. Du vil høre fra os snarest</font>"
       
end if


Du har så stadig problemet med tomme felter, og du skal overveje dette: For hvert enkelt felt, hvad sker der hvis man vil komme ingenting i dem? Har du tilladt felterne at være tomme i Access?

Og er felterne Tekst eller Tal? Hvis et felt fra formen er tomt er dets værdi "", dvs en tom streng. Hvis du vil sætte en tom streng ind i et talfelt i databasen vil det give en fejl. Så du skal have noget if-noget der tager højde for disse ting.
Avatar billede kbs2 Nybegynder
23. september 2005 - 10:46 #3
har fundet ud af det
Avatar billede kbs2 Nybegynder
23. september 2005 - 10:48 #4
ldanielsen, nu har jeg givet mig selv point, hvordan giver jeg dig point
Avatar billede ldanielsen Nybegynder
23. september 2005 - 11:44 #5
Du skulle have bedt mig om at lave et svar, så du kunne acceptere det.

men det er for sent nu, så hvis du vil give mig point, så skal du oprette en nyt spørgsmål, med overskriften "Point til ldanielsen ang. spm 650113" og med "http://www.eksperten.dk/spm/650113" i teksten som reference.

Læg så linket til det nye spm. her, så svarer jeg på det ...
Avatar billede kbs2 Nybegynder
23. september 2005 - 14:47 #6
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