Avatar billede hwks Nybegynder
02. juni 2005 - 14:35 Der er 10 kommentarer og
1 løsning

Udfyld dropdown-liste fra database

Hej eksperter

Jeg vil gerne lave en formular, hvor visse felter henter data fra en database. Det virker fint nok. Jeg kan også submitte formularen - men den skriver ikke den valgte værdi fra dropdown-listen i databasen.

Jeg har en mistanke om, at fejlen er ifb. med det javascript jeg bruger - eller også er det fordi der mangler en <form>xxxx</form> for selve dropdown-listen?

Er der nogen, der kan se, hvad jeg gør galt?

Her er noget fra min testside:

<%@ Language=VBScript%>

<%
Dim oRs, conn, connect, strSQL
%>

<%
'Databaseforbindelse
Set Conn = Server.CreateObject("ADODB.Connection")
DSN = "DRIVER={Microsoft Access Driver (*.mdb)}; "
DSN = DSN & "DBQ=" & Server.MapPath("../db/xxxx.mdb")
Conn.Open DSN
%>

<HTML>

<HEAD>

<TITLE>test test</TITLE>

<script language="javascript">
<!--

function dept_onchange(frmauthor) {
    frmauthor.submit();
}

//-->
</script>

</HEAD>

<BODY>

<form method="post" action="add_xxxxx.asp">

<tr>
<td width="273"><font face="Verdana">Dansk:</font></td>
<td width="489"><font size="3" face="Verdana">
<input name="Dansk" size="70">
</font></td>
</tr>

<tr>
<td width="273">
<p><font face="Verdana">Engelsk:</font></td>
<td width="489"><font size="3" face="Verdana">
<input name="Engelsk" size="70">
</font></td>
</tr>

<tr>
<td>
<p><font face="Verdana">Forfatter:</font></td>                   

<SELECT name=author LANGUAGE=javascript onchange="return dept_onchange(frmauthor)">

<%
Set oRs=Server.CreateObject("adodb.recordset")
strSQL = "SELECT DISTINCT author FROM tbl_author ORDER BY author"
oRs.Open strSQL, conn       

Do while not oRs.EOF
  if Request.Form("xxxxx") = oRs("author") then
      Response.Write "<OPTION VALUE = '" & oRS ("author") & "' SELECTED>"
      Response.Write oRs("author") & "</Option>"
      oRs.MoveNext
  else
      Response.Write "<OPTION VALUE = '" & oRs ("author") & "'>"
      Response.Write oRs("author") & "</Option>"
      oRs.MoveNext
  end if
loop
%></SELECT><p align="center"><font size="3" face="Verdana">
                                <input name="submit" type="submit" value="    Send    "><input name="reset" type="reset" value="    Rens    "></font><p>&nbsp;</form>
<p align="center"><font size="3" face="Verdana">
                                &nbsp;&nbsp;&nbsp; </font></p>
</TABLE>
</CENTER></TD>

</BODY>
</HTML>
Avatar billede fennec Nybegynder
02. juni 2005 - 15:02 #1
Der er ikke noget der hedder LANGUAGE=javascript på en select. Og smid altid " omkring attributterne:
<SELECT name="author" onchange="return dept_onchange(frmauthor)">

Se om det ikke løste problemet...
Avatar billede fennec Nybegynder
02. juni 2005 - 15:09 #2
Desuden er din HTML ikke valid.
Du mangler en <table> og du afslutter den også forkert. Og dit </font> skal ned efter </table>. Du skulle måske smide din kode igennem validatoren på http://validator.w3.org/
Avatar billede hwks Nybegynder
02. juni 2005 - 17:08 #3
Hej fennec

Har brugt <SELECT name="author" onchange="return dept_onchange(frmauthor)"> som du foreslår - men den skriver stadig ikke ned i db.

Derimod kommer der et lille advarselstegn på statuslinjen - når jeg dobbeltklikker på den står der 'frmauthor' er ikke defineret...... hmmmm

Og ja - koden er ikke valid - jeg saksede vist for hurtigt....
Avatar billede fennec Nybegynder
03. juni 2005 - 08:10 #4
onchange="return dept_onchange(frmauthor)"

skal du have ændret til
onchange="return dept_onchange(this.form)">
Avatar billede hwks Nybegynder
03. juni 2005 - 10:31 #5
Hej Fennec

Jeg er virkelig glad for din hjælp..... jeg har scannet tonsvis af eksempler forskellige steder nu, men lige lidt hjælper det.

Desværre har jeg her til morgen ikke adgang til mit webhotel... jeg tester ASAP med onchange="return dept_onchange(this.form)"> og vender tilbage...

Tak endnu en gang :)
Avatar billede hwks Nybegynder
03. juni 2005 - 11:52 #6
Hej igen

Jeg får stadig en fejlmeddelelse på statuslinjen. Den skriver nu "Objektet understøtter ikke denne egenskab eller metode". Og den skriver stadig ikke ned i db....
Avatar billede fennec Nybegynder
03. juni 2005 - 12:38 #7
Har du et link, hvor man kan se det???
Ellers kan du smide hele kildekoden herind (IKKE ASP). højeklik i browseren >> Vis kilde >> smid den kode herind.
Avatar billede hwks Nybegynder
03. juni 2005 - 13:00 #8
Ja - du kan se testfilen her: http://www.telelex.dk/testtest.asp - HTML-koden er stadig ikke valideret....

Her er i øvrigt det eksempel jeg har brugt: http://www.webconcerns.co.uk/asp/combo/combo.asp
Avatar billede fennec Nybegynder
03. juni 2005 - 13:39 #9
Du har et form element i at andet form element. Det er NO NO.
Du skal slette denne kode:
<form name="frmauthor" method="Post" action="testtest.asp">

Også skal du have omdøbt navnet på din submit knap, eller helt fjerne det. Den må ikke hedde submit. Jeg har klippet din kode ned til dette:

<HTML>
<HEAD>
<TITLE>test test</TITLE>
</HEAD>
<BODY>

<form method="post" name="myForm" action="add_xxxx.asp">
<table>
<tr>
  <td width="273">Dansk:</td>
  <td width="489"><input name="Dansk" size="70"></td>
</tr>

<tr>
  <td width="273">Engelsk:</td>
  <td width="489"><input name="Engelsk" size="70"></td>
</tr>
<tr>
  <td>Forfatter:</td>
  <td>
<SELECT name="author" onchange="this.form.action = 'testtest.asp';this.form.submit();">
<%
Set oRs=Server.CreateObject("adodb.recordset")
strSQL = "SELECT DISTINCT author FROM tbl_author ORDER BY author"
oRs.Open strSQL, conn       

Do while not oRs.EOF
  if Request.Form("xxxxx") = oRs("author") then
      Response.Write "<OPTION VALUE = '" & oRS ("author") & "' SELECTED>"
      Response.Write oRs("author") & "</Option>"
      oRs.MoveNext
  else
      Response.Write "<OPTION VALUE = '" & oRs ("author") & "'>"
      Response.Write oRs("author") & "</Option>"
      oRs.MoveNext
  end if
loop
%>
</SELECT>
<input type="submit" value="    Send    ">
<input type="reset" value="    Rens    ">
</TD>
</TABLE>
</form>

</BODY>
</HTML>
Avatar billede hwks Nybegynder
03. juni 2005 - 15:12 #10
Hej igen...

Den skriver stadig ikke ned i databasen.... jeg må have overset et eller andet..... eller også skal jeg måske bruge flere submit-knapper?

Under alle omstændigheder - jeg må kigge endnu mere på det... smid et svar så skal du få point.... og tak for hjælpen... jeg må nok nøjes med en <option value="xxxx">xxxxx</option> i første omgang :))

hwks :))
Avatar billede hwks Nybegynder
04. juni 2005 - 21:37 #11
Fennec - tak for hjælpen... jeg har i stedet hardcodet det og bruger en <option value="xxxx">xxxxx</option>

Point til dig..
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