Avatar billede webbygger Nybegynder
10. oktober 2004 - 16:58 Der er 4 kommentarer og
1 løsning

Problemer med formular!

Hvad kan der være galt her

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>Eagleeye's formular!</title>
</head>
<body>
<%
if Request.ServerVariables("REQUEST_METHOD") = "POST" then
  'henter form felterne
  navn = Replace(Request.form("navn"),"'","''")
  kategori = Replace(Request.form("kategori"),"'","")
  emne = Replace(Request.form("emne"),"'","") 
  pris = Replace(Request.form("pris"),"'","")
  karakter = Replace(Request.form("karakter"),"'","")
  beskriv = Replace(Request.form("beskriv"),"'","''")
  beskriv = Replace(beskriv,vbCrLf,"<br>")
 
 
 
if navn="" or kategori="" or emne="" or beskriv="" or not isNumeric(karakter) or not isnumeric(kategori) then
  Response.Write "Fejl i indtastningen."
  Response.End
else
  'kolonne typerne : navn :tekst, dato :date/time, karakter :tal, beskrivelse :notat/tekst, aktvi :Ja/Nej
  sql = "insert into dittabelnavn (navn, kategori, emne, pris, karakter, beskrivelse,  ) values ("
  sql = sql & "'" & navn & "', "
  sql = sql & "" & kategori & ", "
  sql = sql & "" & emne & ", "
  sql = sql & "" & pris & ", "
  sql = sql & "" & karakter & ", "
  sql = sql & "'" & beskriv & "', "

  sql = sql & ")"
 
  set Conn = Server.CreateObject("ADODB.Connection")
  strConn = "Provider=Microsoft.Jet.OLEDB.4.0; Data Source=" & Server.Mappath("db10.mdb")
  Conn.Open strConn

  Conn.Execute(sql)
  Conn.Close
  Set conn=nothing
  Response.Write "<center><h2>Data er tilføjet</h2></center><br>" 
end if
end if 
%>

<%
set Conn = Server.CreateObject("ADODB.Connection")
strConn = "Provider=Microsoft.Jet.OLEDB.4.0; Data Source=" & Server.Mappath("db10.mdb")
Conn.Open strConn
SQL = "select * from kategorier"
Set rs = Conn.Execute(SQL)
katOptionList = ""
do while not rs.EOF
  katOptionList=katOptionList & "<option value=""" & rs("id") & """>" & rs("katnavn") & "</option>"
  rs.Movenext
loop
Conn.Close
%>
<script>

function validate(theform) {
  if (theform.navn.value=='') {
    alert ('Navn skal udfyldes.');
    return false;
  } 
  if(theform.kategori.value=='' || theform.kategori.value=='---') {
    alert ('Kategori skal vælges');
    return false;
  }
  if (theform.emne.value=='') {
    alert ('Emne skal udfyldes');
    return false;
  }
  str = theform.karakter.value;
  if(!str.match(/^(\d)+$/i)) {
    alert ('Karakter skal udfyldes og være et tal');
    return false;
  }
  if(theform.beskriv.value=='') {
    alert ('Beskrivelse skal udfyldes');
    return false;
  }

  return true;
}
</script>


<form action="<%=Request.ServerVariables("SCRIPT_NAME")%>" method="post" onsubmit="return validate(this);">
  <table>
    <tr>
      <td>Navn:</td>
      <td><input type="text" name="navn"></td>
    </tr>
    <tr>
      <td>Kategori:</td>
      <td><select name="kategori">
          <option value="---">--V&aelig;lg kategori--</option>
          <option value="1">Hjul</option>
          <option value="2">Stang</option>
          <option value="3">Fiskes&aelig;t</option>
          <option value="4">Endegrej</option>
          <option value="5">Bekl&aelig;dning</option>
        </select></td>
    </tr>
    <tr>
      <td>Emne:</td>
      <td><input name="emne" type="text" ></td>
    </tr>
    <tr>
      <td>Pris:</td>
      <td><input name="pris" type="text" ></td>
    </tr>
    <tr>
      <td>Karakter:</td>
      <td><input type="text" name="karakter"></td>
    </tr>
    <tr>
      <td>Beskrivelse:</td>
      <td><textarea name="beskriv" cols="50" rows="25"></textarea></td>
    </tr>
    <tr>
      <td>&nbsp;</td>
      <td>&nbsp;</td>
    </tr>
    <tr>
      <td>&nbsp;</td>
      <td>&nbsp;</td>
    </tr>
    <tr>
      <td>&nbsp;</td>
      <td><input type="submit" name="send" value="send"></td>
    </tr>
  </table>
</form>

</body>
</html>

Jeg får denne fejl:

Microsoft JET Database Engine error '80040e14'

Syntax error in INSERT INTO statement.

/fiskegrej/anmeldelse/formular.asp, line 39
Avatar billede ellebaek Nybegynder
10. oktober 2004 - 18:20 #1
du skal have '' omkring når du arbejder med tekst til din database..

ret denne linie:
  sql = "insert into dittabelnavn (navn, kategori, emne, pris, karakter, beskrivelse,  ) values ("
  sql = sql & "'" & navn & "', "
  sql = sql & "" & kategori & ", "
  sql = sql & "" & emne & ", "
  sql = sql & "" & pris & ", "
  sql = sql & "" & karakter & ", "
  sql = sql & "'" & beskriv & "', "

  sql = sql & ")"
 

til:
  sql = "insert into dittabelnavn (navn, kategori, emne, pris, karakter, beskrivelse,  ) values ("
  sql = sql & "'" & navn & "', "
  sql = sql & "'" & kategori & "', "
  sql = sql & "'" & emne & "', "
  sql = sql & "" & pris & ", "
  sql = sql & "" & karakter & ", "
  sql = sql & "'" & beskriv & "', "

  sql = sql & ")"

her har jeg så antaget at kategori og emnu er af typen tekst/notat mens karakter og pris er tal..
Avatar billede eagleeye Praktikant
10. oktober 2004 - 18:30 #2
der skal ikke , efter sidste kolonne i både kolonne listen go i values delen:

sql = "insert into dittabelnavn (navn, kategori, emne, pris, karakter, beskrivelse,  ) values ("
til:
sql = "insert into dittabelnavn (navn, kategori, emne, pris, karakter, beskrivelse  ) values ("


Samt:
sql = sql & "'" & beskriv & "', "
til:
sql = sql & "'" & beskriv & "' "
Avatar billede ellebaek Nybegynder
10. oktober 2004 - 18:31 #3
nå ja :-)

Så langt havde jeg ikke set..
Avatar billede webbygger Nybegynder
10. oktober 2004 - 18:40 #4
Kanon elleback nu virker det http://www.web-byggeren.dk/fiskegrej/anmeldelse/test2.asp

Har lige et tillægsspørgsmål!!

Hvor kan jeg sortere de forskellige kategorier fra hinanden, når jeg f.eks ønsker at trække emne fra kategorien hjul?
Avatar billede ellebaek Nybegynder
10. oktober 2004 - 19:12 #5
hvis du kun vil hente de emner der er af typen hjul, så kan du bruge:

sql = "select * from dittabelnavn where emne = 'hjul'"

du kan så lave den om til fx.

sql = "select * from dittabelnavn where emne = '" & request.querystring("emne") & "'"
ovenstående skal du bruge hvis du fx. kalder siden med: test2.asp?emne=hjul


hvis du vil have alle elementer hentet men arrangeret så hjul står sammen og stænger står sammen osv, så skal du bruge..

sql = "select * from dittabelnavn order by emne"
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