Avatar billede gabi Novice
20. juli 2007 - 14:52 Der er 6 kommentarer og
1 løsning

Delvis udfyldning af formular med input til database

Jeg har en formular som ser sådan ud:

<form action="modtag.asp" method="post" name="spiller" id="spiller">
  <p class="h1o">Indtast dine oplysninger her  </p>
  <table width="500" border="0" cellspacing="0" cellpadding="0">
    <tr>
      <td class="h2o">Off-game</td>
      <td class="h2o">In-game</td>
    </tr>
    <tr>
      <td>&nbsp;</td>
      <td>&nbsp;</td>
    </tr>
    <tr>
      <td><label>Navn:</label>
&nbsp;<br>
<input name="navn" type="text" id="navn" size = "30"></td>
      <td><label>Navn:</label>
&nbsp;<br>
<input name="ingame" type="text" id="ingame" size = "30"></td>
    </tr>
    <tr>
      <td>&nbsp;</td>
      <td>&nbsp;</td>
    </tr>
    <tr>
      <td><label>Adresse:</label>
&nbsp;<br>
<input name="adresse" type="text" id="adresse" size = "30"></td>
      <td><label>Karakter:</label>
&nbsp; <br>
<select name="karakter" id="karakter">
  <option>V&aelig;lg her...</option>
  <option>Dv&aelig;rg</option>
  <option>Goblin</option>
  <option>Grumler</option>
  <option>Hvidelver</option>
  <option>Nordfolket</option>
  <option>Rytterfolket</option>
  <option>Sejerfolket</option>
  <option>Skovelver</option>
  <option>Tyranfolket</option>
  <option>Andet</option>
</select>
</td>
    </tr>
    <tr>
      <td>&nbsp;</td>
      <td>&nbsp;</td>
    </tr>
    <tr>
      <td>
        <label>Postnr.:</label>
        <br>
        <input name="postnr" type="text" id="postnr"  size = "30">
        <label></label></td>
      <td>&nbsp;</td>
    </tr>
    <tr>
      <td>&nbsp;</td>
      <td>&nbsp;</td>
    </tr>
    <tr>
      <td>By:<br>
      <input name="by" type="text" id="by" size = "30"></td>
      <td>&nbsp;</td>
    </tr>
    <tr>
      <td>&nbsp;</td>
      <td>&nbsp;</td>
    </tr>
    <tr>
      <td><label>Telefonnummer:</label>
&nbsp;<br>
<input name="telefon" type="text" id="telefon" size = "30"></td>
      <td>&nbsp;</td>
    </tr>
    <tr>
      <td>&nbsp;</td>
      <td>&nbsp;</td>
    </tr>
    <tr>
      <td><label>E-mail:</label>
&nbsp; <br>
<input name="mail" type="text" id="mail" size = "30"></td>
      <td>&nbsp;</td>
    </tr>
    <tr>
      <td>&nbsp;</td>
      <td>&nbsp;</td>
    </tr>
    <tr>
      <td><label>Alder:</label>
&nbsp;<br>
<select name="alder" id="select" >
  <option>V&aelig;lg her...</option>
  <option>1950</option>
  <option>1951</option>
  <option>1952</option>
</select></td>
      <td valign="bottom"><input type="submit" value="Gem"></td>
    </tr>
  </table>
</form>

Data bliver sendt via post til modtag.asp - det fungerer fint.

Jeg kunne godt tænke mig at man ikke behøver at udfylde alle felter, altså sådan at man selv kan bestemme hvor meget man vil oplyse.

Hvis man kun udfylder et par felter får man denne fejl:

Microsoft OLE DB Provider for ODBC Drivers error '80040e07'
[Microsoft][ODBC Microsoft Access Driver] Data type mismatch in criteria expression.
/asp/modtag.asp, line 58

Linie 58 ser sådan ud: Conn.Execute(strSQL)

Hele asp-koden er som følger:

<%

'Databaseforbindelse
set conn = server.createobject("ADODB.connection")
conn.Open "DBQ=" & server.mappath("../db/medlemmer.mdb") & ";Driver={Microsoft Access Driver (*.mdb)}"

' Tilføj data i database
strSQL = "Insert into Medlemmer (Navn, Ingame, Karakter, Adresse, Postnummer, Town, Telefonnummer, Mailadresse, Alder) values('"&Request.Form("navn")&"', '"&Request.Form("ingame")&"', '"&Request.Form("karakter")&"', '"&Request.Form("adresse")&"','"&Request.Form("postnr")&"', '"&Request.Form("by")&"', '"&Request.Form("telefon")&"','"&Request.Form("mail")&"','"&Request.Form("alder")&"')"


' SQL sætning eksekveres
Conn.Execute(strSQL)


' Tak for tilmelding
Response.Write "<H1>Tak for din tilmelding</H1>"


' Luk databaseforbindelse
Conn.Close
Set Conn = Nothing
%>

Datatypen for alle felter i databasen:
Obligatorisk: Nej
TilladNullængde: Ja

Hvordan får jeg det til at fungere?
Avatar billede The Real Yoda Juniormester
22. juli 2007 - 16:17 #1
hvad er det du vil ha til at fungere.. det ser da fint ud .. ?
Avatar billede gabi Novice
22. juli 2007 - 21:05 #2
Det jeg gerne vil have til at fungere er, at hvis du på tilmeldingsformularen udfylder f.eks. felterne: Navn, Karakter, Telefonnummer og alder, så er det kun disse data der bliver registreret i databasen. Men som det er nu, får man den fejl jeg har taget kopi af:

Microsoft OLE DB Provider for ODBC Drivers error '80040e07'
[Microsoft][ODBC Microsoft Access Driver] Data type mismatch in criteria expression.
/asp/modtag.asp, line 58

Linie 58 ser sådan ud: Conn.Execute(strSQL)

Denne fejl får jeg, når jeg forsøge at tilmelde mig, men jeg kan se at det er lykkes for en spiller kun at opgive Navn, Telefonnummer, Mailadresse og alder, og det forstår jeg godt nok ikke lige, når jeg bliver ved med at få fejl.
Avatar billede The Real Yoda Juniormester
22. juli 2007 - 21:17 #3
Data type mismatch in criteria expression

betyder du prøver at sætte en type ind som du ikke må..

det kan være ud prøver at sætte bogstaver i et tal felt i databasen ?
Avatar billede gabi Novice
22. juli 2007 - 21:47 #4
aha - så blev problemet løst. Felterne Postnummer, Telefonnummer og Alder var "tal-felter" i databasen og det er åbenbart sådan at "tomme" felter bliver betragtet som tekst og deraf fejlteksten.

Nu har jeg ændret alle felter til "tekstfelter" og så er der ingen problemer.

Vil det sige at man ikke kan benytte "tal"felter i databasen når man benytter valgfri udfyldning? Eller er der en anden måde at omgås dette på?

Til therealyoda - giv mig et svar hvis du vil have point, det aktuelle problem er jo faktisk løst ved at ændre tal-felter til tekst-felter.
Avatar billede gabi Novice
24. juli 2007 - 17:36 #5
hejsatherealyoda - vil du ikke have dine point?
Avatar billede The Real Yoda Juniormester
24. juli 2007 - 18:14 #6
hehe jo.. så skidt da..
Avatar billede gabi Novice
24. juli 2007 - 18:24 #7
ja ja, du har da brugt tid på at læse hvad jeg har skrevet og det er en stor hjælp for sådan en nybegynder som mig.
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