Avatar billede thomashansen Nybegynder
13. maj 2006 - 02:37 Der er 39 kommentarer og
1 løsning

Indsamling af data fra TextBox og DropDownMenu til DB

Problemstilling:

DB-tabellen 24Kalibreringskomponent skal opdateres og ID_Leverandør er fremmednøgle hvorfor jeg skal have denne vist i en DropDownMenu, som jeg kan vælge fra. De øvrige data indtastes blot.

Min kode (der ikke fungerer):

<html>

<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
<title>ID_Apparat</title>
</head>

<%@LANGUAGE="VBSCRIPT"%>

<!--#include file="dbconnect.asp" -->

<%
Set list = Server.CreateObject ("ADODB.Recordset")
list.Open "SELECT [05Leverandør].ID_Leverandør FROM 05Leverandør ", Conn
%>

<body>
<form name="form1" method="get" action="testconnect171.asp">
<form name="form2" method="post" action="">
ID_Kalibreringskomponent:
Automatisk<br>
Kalibreringskomponent: <input type="text" name= "Kalibreringskomponent"><br>
KalibreringskomponentPris: <input type="text" name= "KalibreringskomponentPris"><br>
Bemærkning: <input type="text" name= "Bemærkning"><br>
  ID_Leverandør:
  <select name="menu1" onChange="DropDownMenu(this)">
  <% Do While Not rs.EOF %>
    <option value="<%= list("ID_Leverandør") %>.asp"><%= list("ID_Leverandør") %></option>
  <%
  rs.MoveNext
  Loop
  %>
  </select>
</form>
</body>

</html>
Avatar billede thomashansen Nybegynder
13. maj 2006 - 02:39 #1
<form name="form1" method="get" action="testconnect171.asp">

refererer til opsamlingsscriptet og dermed 24Kalibreringskomponent
Avatar billede nielle Nybegynder
13. maj 2006 - 07:38 #2
Det ene sted kalder du dit recordset for "list", mens du andetsteds kalder det for rs. Det skal selvfølgeligt hedde det samme over alt.

Desuden kan jeg ikke se hvor du forbinder til din database henne. Det sker formentlig i dbconnect.asp filen, korrekt?
Avatar billede thomashansen Nybegynder
13. maj 2006 - 09:41 #3
Fejlen med recordset er rettet og nu kommer der en rullemenu, men jeg skal jo så have overført input til DB og det sker også fra alle TextBox´e, men jeg får fejl fra DropDownMenu´en.
Avatar billede thomashansen Nybegynder
13. maj 2006 - 09:41 #4
Forbindelsen til DB oprettes ganske rigtigt via dbconnect.asp filen
Avatar billede nielle Nybegynder
13. maj 2006 - 09:41 #5
Hvordan ser din kode ud?
Avatar billede thomashansen Nybegynder
13. maj 2006 - 09:47 #6
Her er formularen:

<html>

<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
<title>ID_Apparat</title>
</head>

<%@LANGUAGE="VBSCRIPT"%>

<!--#include file="dbconnect.asp" -->

<%
Set list = Server.CreateObject ("ADODB.Recordset")
list.Open "SELECT [05Leverandør].ID_Leverandør FROM 05Leverandør ", Conn
%>

<body>
<form name="form1" method="get" action="testconnect171.asp">
<form name="form2" method="post" action="">
ID_Kalibreringskomponent:
Automatisk<br>
Kalibreringskomponent: <input type="text" name= "Kalibreringskomponent"><br>
KalibreringskomponentPris: <input type="text" name= "KalibreringskomponentPris"><br>
Bemærkning: <input type="text" name= "Bemærkning"><br>
  ID_Leverandør:
  <select name="menu1" onChange="DropDownMenu(this)">
  <% Do While Not list.EOF %>
    <option value="<%= list("ID_Leverandør") %>.asp"><%= list("ID_Leverandør") %><br>

  <%
  list.MoveNext
  Loop
  %>
 
  <input type="submit" name="Submit" value="Opdater">
 
  </select>
</form>
</body>

</html>
Avatar billede thomashansen Nybegynder
13. maj 2006 - 09:48 #7
Her er siden hvor data opsamles:

<html>

<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
<title>Ny side 1</title>
</head>

<%@LANGUAGE="VBSCRIPT"%>

<!--#include file="dbconnect.asp" -->

<%
Set Apparater = Server.CreateObject("ADODB.Recordset")
Apparater.Open "24Kalibreringskomponent", Conn, 2, 2
%>

<%
Apparater.AddNew
    'Apparater("ID_Kalibreringskomponent") = Request.QueryString("ID_Kalibreringskomponent")'
    Apparater("Kalibreringskomponent") = Request.QueryString("Kalibreringskomponent")
    Apparater("KalibreringskomponentPris") = Request.QueryString("KalibreringskomponentPris")
    Apparater("ID_Leverandør) = Request.QueryString("ID_Leverandør")
    Apparater("Bemærkning") = Request.QueryString("Bemærkning")

Apparater.UPDATE

Response.Redirect("testconnect17.asp")
%>

<body>

</body>

</html>
Avatar billede thomashansen Nybegynder
13. maj 2006 - 09:50 #8
Linien 'Apparater("ID_Kalibreringskomponent") = Request.QueryString("ID_Kalibreringskomponent")' skal faktisk ikke længere bruges, da ID_Kalibreringskomponent nummereres automatisk
Avatar billede nielle Nybegynder
13. maj 2006 - 09:54 #9
Du skal rette din select:

<select name="menu1" onChange="DropDownMenu(this)">

- til:

<select name="ID_Leverandør" onChange="DropDownMenu(this)">
Avatar billede nielle Nybegynder
13. maj 2006 - 09:55 #10
... bortset fra at du kan få nogle problemer hvis du insistere på at bruge danske bogstaver.
Avatar billede thomashansen Nybegynder
13. maj 2006 - 09:57 #11
OK, ja de danske bogstaver har jeg tænkt mig at erstatte.
Jeg implementerer lige dit forslag
Avatar billede thomashansen Nybegynder
13. maj 2006 - 10:07 #12
Jeg får stadig fejlen:

Microsoft VBScript compilation error '800a03ee'

Expected ')'

/SpecialeLogbog/testconnect171.asp, line 22

Apparater("ID_Leverandør) = Request.QueryString("ID_Leverandør")
-------------------------------------------------^
Avatar billede thomashansen Nybegynder
13. maj 2006 - 10:11 #13
OK, jeg har altså lige rettet æ , ø, å men får alligevel fejl
Avatar billede nielle Nybegynder
13. maj 2006 - 10:12 #14
Du mangler et "-tegn. Ret:

Apparater("ID_Leverandør) = Request.QueryString("ID_Leverandør")

- til:

Apparater("ID_Leverandør") = Request.QueryString("ID_Leverandør")
Avatar billede thomashansen Nybegynder
13. maj 2006 - 10:18 #15
OK, nu kører det uden fejl, men der overføres ikke fra DropDownMenu til DB
Avatar billede nielle Nybegynder
13. maj 2006 - 10:20 #16
Det er nok det ø som driller:

Hvis du ændre din select til:

<select name="ID_Leverandoer" onChange="DropDownMenu(this)">

- og afspejler dette ved at ændre:

Apparater("ID_Leverandør") = Request.QueryString("ID_Leverandør")

- til:

Apparater("ID_Leverandør") = Request.QueryString("ID_Leverandoer")

- så burde det hjælpe.
Avatar billede thomashansen Nybegynder
13. maj 2006 - 10:37 #17
OK, det hele fungerer hvis linien:'
Apparater("ID_Leverandoer") = Request.QueryString("ID_Leverandoer")
ved opsamlingen
Avatar billede thomashansen Nybegynder
13. maj 2006 - 10:39 #18
Sorry, ja altså hvis nævnte linie fjernes
Avatar billede nielle Nybegynder
13. maj 2006 - 10:41 #19
Jeg kan se at du også har ændret ø'et i din:

Apparater("ID_Leverandoer")

Dette kræver at du også ændre navnet internt i datbasen. Har du gjort det?
Avatar billede thomashansen Nybegynder
13. maj 2006 - 10:43 #20
Ja, jeg har ændret navne på/i de pågældende tabeller
Avatar billede thomashansen Nybegynder
13. maj 2006 - 10:46 #21
Ja, jeg er jo noget på bar bund som det fremgår...
Avatar billede nielle Nybegynder
13. maj 2006 - 10:48 #22
Så burde det faktisk fungere nu.

Siden at det alligevel ikke gør det, så må det være fordi at dit javascript - onChange="DropDownMenu(this)" - går et eller andet uhensigtsmæssigt.
Avatar billede thomashansen Nybegynder
13. maj 2006 - 10:51 #23
Avatar billede thomashansen Nybegynder
13. maj 2006 - 10:52 #24
Du skal ikke tage dig af linien vedr. lokomotiver - det stammer fra et andet system jeg har...
Avatar billede thomashansen Nybegynder
13. maj 2006 - 10:55 #25
Avatar billede nielle Nybegynder
13. maj 2006 - 11:05 #26
Jeg han se at der er en fejl i dit javascript - når jeg vælger noget i din dropdown, får jeg ihvertfald den lille gule trekant ("Der opstod en fejl på siden") nede i venstre hjørne af browseren.

Desværre kan jeg ikke se dit javasvript, og en af årsagerne er nok denne her:

<script language='javascript' src='http://127.0.0.1:1029/js.cgi?pca&r=9734'></script>

Den er helt gal! IP-adressen 127.0.0.1 peger på brugerens *egen* maskine (altså min maskine i dette tilfælde). Men dit javascript ligger jo på din server - ikke her hos mig.
Avatar billede nielle Nybegynder
13. maj 2006 - 11:06 #27
Umiddelbart er det dog slet ikke klart hvad du egentlig bruger kaldet til DropDownMenu(this) til?

Prøv at ændre:

<select name="ID_Leverandoer" onChange="DropDownMenu(this)">

- til:

<select name="ID_Leverandoer">
Avatar billede thomashansen Nybegynder
13. maj 2006 - 11:12 #28
OK, har du et andet forslag til løsningen ?

(du får point´s, du har brugt meget tid på det her)
Avatar billede nielle Nybegynder
13. maj 2006 - 11:18 #29
Har du prøvet forslaget 13/05-2006 11:06:46?
Avatar billede thomashansen Nybegynder
13. maj 2006 - 11:20 #30
Prøver
Avatar billede thomashansen Nybegynder
13. maj 2006 - 11:33 #31
Jeg har prøvet dit forslag fra 13/05-2006 11:06:46, men det fungerer ikke og giver fejl i testconnect171.asp, line 22

For en ordens skyld har jeg checket, at jeg via TextBox kan indtaste leverandør og det fungerer. Det vil sige der er noget at bygge videre på (til beroligelse for mig selv)
Avatar billede nielle Nybegynder
13. maj 2006 - 11:45 #32
Der er bare en simpel ASP-fejl i din kode på linje 22 .. det er såmen alt. Hvad står der i linje 22?
Avatar billede thomashansen Nybegynder
13. maj 2006 - 11:53 #33
Jeg vil ønske du har ret:

Apparater("ID_Leverandoer") = Request.QueryString("ID_Leverandoer")
Avatar billede nielle Nybegynder
13. maj 2006 - 11:58 #34
Hvilken type er dit felt ID_Leverandoer derfineret som i din database?
Avatar billede thomashansen Nybegynder
13. maj 2006 - 12:02 #35
ID_Leverandoer er derfineret som tal, er fremmednøgle i tabel 24Kalibreringskomponent og primær nøgle i 05Leverandoer
Avatar billede nielle Nybegynder
13. maj 2006 - 12:09 #36
Hvis ID_Leverandoer er defineret som tal så er det ikke såecielt hensigsmæssigt at din HTML-kode ser sådan her ud:

ID_Leverandoer: <select name="ID_Leverandoer">
    <option value="1.asp">1<br>
    <option value="2.asp">2<br>
    <option value="3.asp">3<br>
    <option value="4.asp">4<br>
    <option value="5.asp">5<br>
    <option value="6.asp">6<br>
    <option value="7.asp">7<br>
<input type="submit" name="Submit" value="Opdater">
</select>

- for så er det nemlig værdierne "1.asp", "2.asp" osv, som den forsøger at indsætte. I stedet bør den se sådan her ud:

ID_Leverandoer: <select name="ID_Leverandoer">
    <option value="1">1<br>
    <option value="2">2<br>
    <option value="3">3<br>
    <option value="4">4<br>
    <option value="5">5<br>
    <option value="6">6<br>
    <option value="7">7<br>
</select>
<input type="submit" name="Submit" value="Opdater">

- eller endnu simplere:

ID_Leverandoer: <select name="ID_Leverandoer">
    <option>1<br>
    <option>2<br>
    <option>3<br>
    <option>4<br>
    <option>5<br>
    <option>6<br>
    <option>7<br>
</select>
<input type="submit" name="Submit" value="Opdater">

(BEMÆRK: at jeg har flyttet submit-knappen ud. Den høre ikke til indenfor i select'en.)
Avatar billede thomashansen Nybegynder
13. maj 2006 - 12:25 #37
MANGE TAK du har reddet mig læg endelig et svar.

Min kode ser så sådan ud (jeg valgte din simplere løsning):

<html>

<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
<title>ID_Apparat</title>
</head>

<%@LANGUAGE="VBSCRIPT"%>

<!--#include file="dbconnect.asp" -->

<%
Set list = Server.CreateObject ("ADODB.Recordset")
list.Open "SELECT [05Leverandoer].ID_Leverandoer FROM 05Leverandoer ", Conn
%>

<body>
<form name="form1" method="get" action="testconnect171.asp">
<form name="form2" method="post" action="testconnect171.asp">
ID_Kalibreringskomponent:
Automatisk<br>
Kalibreringskomponent: <input type="text" name= "Kalibreringskomponent"><br>
KalibreringskomponentPris: <input type="text" name= "KalibreringskomponentPris"><br>
Bemaerkning: <input type="text" name= "Bemaerkning"><br>
ID_Leverandoer: <select name="ID_Leverandoer">
  <% Do While Not list.EOF %>
    <option> <%= list("ID_Leverandoer") %></option><br>

  <%
  list.MoveNext
  Loop
  %>
 
   
 
  </select>
  <input type="submit" name="Submit" value="Opdater">
  </p>
</form>
<p>Kig til den opdaterede liste:
<a href="http://www.hybenvang.dk/SpecialeLogbog/leverandoerer.asp">
http://www.hybenvang.dk/SpecialeLogbog/leverandoerer.asp</a></p>
<p>&nbsp;</p>
</body>

</html>
Avatar billede nielle Nybegynder
13. maj 2006 - 12:27 #38
Svar :^)
Avatar billede thomashansen Nybegynder
13. maj 2006 - 12:29 #39
OK og endnu en gang TAK - jeg vil ikke udelukke at jeg bliver nød til, at oprette flere spørgsmål i denne her sammenhæng hvor det drejer sig om, at lave logbogssystem
Avatar billede nielle Nybegynder
13. maj 2006 - 12:31 #40
Det gør du bare :^)
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