Avatar billede chakazulu Nybegynder
04. februar 2008 - 21:04 Der er 15 kommentarer og
1 løsning

Kan man gøre det på en anden måde? DB/ASP

Er der en bedre måde at gøre det her på?
Jeg har selv programmeret dette forslag, men det virker bare ikke til det jeg skal... ØV
Prøv mit link: http://localhost/test/asptest.asp

CODE:

<%@ Language=VBScript %>
<%Option explicit
Dim oRs, conn, connect, strSQL

set conn=server.CreateObject ("adodb.connection")
connect = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath("cykeldata.mdb") & ";Persist Security Info=False"
conn.Open connect

%>


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

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

//-->
</script>




<html>

    <head>
        <title>dropdowntest</title>
    </head>

    <body bgcolor="#ffffff" link="black">
   
        <table width="651" border="0" cellspacing="0" cellpadding="3">
            <tr>
                <td valign="top" width="408">
                    <div align="center">
                        <table width="100%" border="0" cellspacing="0" cellpadding="5">
                            <tr>
                                <td width="80%">
                                    <div align="left">
                                        <form name="frmSelect" method="Post" action="asptest.asp">
                                            <div align="left">
                                                <font size="2" face="Verdana, Arial, Helvetica, sans-serif"><select name=hjul language=javascript onchange="return dept_onchange(frmSelect)">
                                                        <%
                                                                                                                Set oRs=Server.CreateObject("adodb.recordset")
                                                                                                                strSQL = "SELECT ID_no, beskrivelse, moms, exmoms, pris FROM tblhjul ORDER BY ID_no"
                                                                                                                oRs.Open strSQL, conn
                                                                                                               
                                                                                                                Do while not  oRs.EOF
                                                                                                                if Request.Form("hjul") = oRs("ID_no") & oRS ("beskrivelse")  & oRS ("moms")  & oRS ("exmoms")  & oRS ("pris") then 'if this is the selected one then display as selected
                                                                                                                Response.Write "<OPTION VALUE = '" & oRS ("ID_no") & (" ")  & oRS ("beskrivelse") &  "' SELECTED>"
                                                                                                                Response.Write oRs("ID_no") & oRS ("beskrivelse") & "</Option>"
                                                                                                               
                                                                                                               
                                                                                                                oRs.MoveNext
                                                                                                                else
                                                                                                               
                                                                                                               
                                                                                                                Response.Write "<OPTION VALUE = '"
                                                                                                                Response.Write ("<input type=hidden name=a1 value="" ")
                                                                                                                Response.Write oRS ("beskrivelse") & (""">")
                                                                                                               
                                                                                                               
                                                                                                                Response.Write ("<br>")
                                                                                                                Response.Write ("<br>")
                                                                                                                Response.Write oRS ("beskrivelse") & ("<br>Moms: ") & oRS ("moms") &  (",-<br>Ex. Moms: ") & oRS ("exmoms") &  (",-<br>Pris: ") & oRS ("pris")
                                                                                                                Response.Write (",-")
                                                                                                               
                                                                                                                Response.Write ("<input type=hidden name=a2 value= ")
                                                                                                                Response.Write oRS ("moms")
                                                                                                                Response.Write (">")
                                                                                                               
                                                                                                                Response.Write ("<input type=hidden name=a3 value= ")
                                                                                                                Response.Write oRS ("exmoms")
                                                                                                                Response.Write (">")
                                                                                                                 
                                                                                                                Response.Write ("<input type=hidden name=a4 value= ")
                                                                                                                Response.Write oRS ("pris") &  ("> ") & "'>"
                                                                                                               
                                                                                                               

                                                                                                               
                                                                                                                Response.Write oRS ("beskrivelse") & (" ") & oRS ("pris") &  (" ") & "</Option>"
                                                                                                                  oRs.MoveNext
                                                                                                                  end if
                                                                                                                  loop
                                                                                                                 
                                                                                                           
                                                                                                                 
                                                                                                                  %>
                                                                                                                 
                                                    </select>  <br>
                                                        1.<%=Request.Form ("hjul")%><br>
                                                    <br>
                                                </font></div>
                                        </form>
                                    </div>
                                </td>
                            </tr>
                        </table>
                        <font size="2" color="#ff3300" face="Verdana, Arial, Helvetica, sans-serif"> </font></div>
                    <div align="left">
                   
                    </div>
                    <div align="center">
                        <p></p>
                    </div>
                </td>
                <td valign="top">
                    <div align="center">
                        <img src="pics/dbpic.jpg" alt="" border="0"></div>
                </td>
            </tr>
        </table>
   
    </body>

</html>

CODE slut:

Mvh Ian
Avatar billede chakazulu Nybegynder
04. februar 2008 - 21:12 #1
UPS... Her er det rigtige link!!

http://www.pilatesudstyr.com/tester/asptest.asp
Avatar billede Slettet bruger
04. februar 2008 - 22:39 #2
hmm... der er mange ting her jeg ikke forstår...

- vi kan starte med noget simpelt html:
<select name=hjul language=javascript onchange="return dept_onchange(frmSelect)">

jeg har personligt aldrig hørt om at man kan sætte 'language' i sådan en tag??? Hvilket formål har den?

Endvidere så hvis jeg forstår det her rigtigt - så skal du vel bare give hver option-value, databasens id (primærnøgle) som value... Og så den side du submitter til skal jo så bare slå pågældende id op og hente de data der skal bruges og så gemme dem...

\Dan
Avatar billede chakazulu Nybegynder
05. februar 2008 - 13:20 #3
Hej Dan..

Glem alt om min code... Den virker alligevel ikke efter hensigten.

Og du har fuldstændig ret.
Jeg vil meget gerne gøre som du forslår, (ID -primær nøgle) men jeg har prøvet alt, og søgt hårdt de sidste 2 måneder efter lige præcis det du snakker om.

Har du evt. lidt code jeg kan lege med?

Mvh Ian
Avatar billede Slettet bruger
05. februar 2008 - 14:58 #4
tjae... det er meget simpelt...
nu laver jeg et eksempel i asp - som intet har med dit projekt at gøre... så må du selv lige flete tingene sammen...

- jeg har bevidst ikke lavet din database-connection - idet jeg ikke ved hvilken type du bruger...

her har du din select-boks altså den første side:
- lad os kalde denne side for default.asp
<%
set rs = conn.execute("select * from tabel order by id")
of rs.EOF=False then
%>
<form id="form1" action="save.asp" method="post">
<select name="test" onchange="document.getElementById('form1').submit();">
<%
do until rs.EOF=True
id=rs("id")
navn=rs("navn")
%>
<option value="<%=id%>"><%=navn%></option>
<%
rs.movenext
loop
%>
</select>
</form>
<%
end if
rs.close
set rs=nothing
%>

- og så submitter vi til denne her, lad os kalde den save.asp:

<%
set rs = conn.execute("select * from tabel where id=" & request.form("id"))
navn=rs("navn")
rs.close
set rs=nothing
response.write navn
%>
- og i save.asp er det jo så selvfølgelig muligt at hente alle variablerne og gemme dem igen et andet sted...

- skriv endelig igen hvis vi skal arbejde videre...

\Dan
Avatar billede chakazulu Nybegynder
05. februar 2008 - 20:00 #5
Hmm. Det virker ikke!

Fejltype:
Der opstod en Microsoft VBScript-kompileringsfejl (0x800A0401)
Slut på sætning var ventet
/test/asptest1.asp, line 20, column 16
of rs.EOF=False then
---------------^


Code:


        <%

Dim conn            
Dim rs           

Set conn = Server.CreateObject("ADODB.Connection")


conn.Open "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath("cykeldata.mdb")

%>



<%
set rs = conn.execute("select * from tblhjul order by ID_no")
of rs.EOF=False then
%>
<form id="form1" action="save.asp" method="post">
<select name="test" onchange="document.getElementById('form1').submit();">
<%
do until rs.EOF=True
ID_no=rs("ID_no")
pris=rs("pris")
%>
<option value="<%=ID_no%>"><%=pris%></option>
<%
rs.movenext
loop
%>
</select>
</form>
<%
end if
rs.close
set rs=nothing
%>

Code slut:

Mvh Ian
Avatar billede chakazulu Nybegynder
05. februar 2008 - 20:10 #6
Jeg har også prøvet med en anden connection!

Fejltype:
Der opstod en Microsoft VBScript-kompileringsfejl (0x800A0401)
Slut på sætning var ventet
/test/asptest1.asp, line 15, column 17
of oRs.EOF=False then
----------------^

Code:

<%@ Language=VBScript %>
<%Option explicit
Dim oRs, conn, connect

set conn=server.CreateObject ("adodb.connection")
connect = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath("cykeldata.mdb") & ";Persist Security Info=False"
conn.Open connect

%>



<%
set oRs = conn.execute("select * from tblhjul order by ID_no")
of oRs.EOF=False then
%>
<form id="form1" action="save.asp" method="post">
<select name="test" onchange="document.getElementById('form1').submit();">
<%
do until oRs.EOF=True
ID_no=oRs("ID_no")
pris=oRs("pris")
%>
<option value="<%=ID_no%>"><%=pris%></option>
<%
oRs.movenext
loop
%>
</select>
</form>
<%
end if
oRs.close
set oRs=nothing
%>
Avatar billede Slettet bruger
05. februar 2008 - 20:19 #7
- okay... det var så en slåfejl...
of rs.EOF=False then skal være if rs.EOF=False then

- sådan kan det gå når man får slået nogen ved en fejl... ;-)

\Dan
Avatar billede chakazulu Nybegynder
05. februar 2008 - 20:21 #8
Hmm..

Fejltype:
Der opstod en Microsoft VBScript-kørselsfejl (0x800A01F4)
Variablen er ikke defineret: 'ID_no'
/test/asptest1.asp, line 21
Avatar billede chakazulu Nybegynder
05. februar 2008 - 20:25 #9
Min primær nøgle, altså mit ID, hedder ID_no i DB!
Det var da mærkeligt?

Kode:
<%@ Language=VBScript %>
<%Option explicit
Dim oRs, conn, connect

set conn=server.CreateObject ("adodb.connection")
connect = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath("cykeldata.mdb") & ";Persist Security Info=False"
conn.Open connect

%>



<%
set oRs = conn.execute("select * from tblhjul order by ID_no")
if oRs.EOF=False then
%>
<form id="form1" action="save.asp" method="post">
<select name="test" onchange="document.getElementByID('form1').submit();">
<%
do until oRs.EOF=True
ID_no=oRs("ID_no")
pris=oRs("pris")
%>
<option value="<%=ID_no%>"><%=pris%></option>
<%
oRs.movenext
loop
%>
</select>
</form>
<%
end if
oRs.close
set oRs=nothing
%>
Avatar billede chakazulu Nybegynder
05. februar 2008 - 20:43 #10
Ok... Jeg har leget med det og nu virker det.. Lidt!
Hehe.

Men kan man ikke få den til at sende til samme side?

Fejltype:
Microsoft OLE DB Provider for ODBC Drivers (0x80040E14)
[Microsoft][ODBC Microsoft Access-driver] Der er en syntaksfejl, fordi der mangler en operator. i forespørgselsudtrykket "ID_no=".
/test/asptest1.asp, line 50


Code:

        <%

Dim conn           
Dim rs           
Dim rs1
Set conn = Server.CreateObject("ADODB.Connection")


conn.Open "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath("cykeldata.mdb")

%>




<%
set rs = conn.execute("select * from tblhjul order by ID_no")
if rs.EOF=False then
%>
<form id="form1" action="asptest1.asp" method="post">
<select name="test" onchange="document.getElementByID('form1').submit();">
<%
do until rs.EOF=True
ID_no=rs("ID_no")
pris=rs("pris")
%>
<option value="<%=ID_no%>"><%=pris%></option>
<%
rs.movenext
loop
%>
</select><input type="submit" name="submitButtonName" value="next">
</form>



<%
end if
rs.close
set rs=nothing
%>







<%
set rs1 = conn.execute("select * from tblhjul where ID_no=" & request.form("ID_no"))
pris=rs1("pris")
rs1.close
set rs1=nothing
Response.Write pris
%>
Avatar billede Slettet bruger
05. februar 2008 - 22:08 #11
ok... Hvorfor er det at du gerne vil have den til at sende til samme side?
- Tingene bliver bestemt ikke mere overskuelige af at man sender tingene til samme side...

- Endvidere bliver systemet også langsommere af det - så det kan jeg ikke anbefale...

\Dan
Avatar billede chakazulu Nybegynder
06. februar 2008 - 13:20 #12
Mit system køre kun på lokal server. så det er ok at det bliver en anelse langsommere.

Det er alfa omega at det bliver sendt til samme side, da jeg skal vælge flere ting fra DB.

Alt virker bort set fra den side vi arbejder på..
det er bare 1 ud af 90 asp sider jeg har problemer med, så det ville være dejligt hvis jeg kunne få den sidste brik til at passe.

Så hvis du kan hjælpe mig med at få sendt til samme side vil jeg være MEGET taknemlig!

Mvh Ian
Avatar billede Slettet bruger
06. februar 2008 - 15:38 #13
hmmm... jeg er så ikke enig med dig i at det skal være på en og samme side det hele... som udgangspunkt så er dette faktisk aldrig en nødvendighed... men prøv følgende:

<%
if request.querystring("act")="save" then
set rs = conn.execute("select * from tabel where id=" & request.form("id"))
navn=rs("navn")
rs.close
set rs=nothing
response.write navn
end if

set rs = conn.execute("select * from tabel order by id")
of rs.EOF=False then
%>
<form id="form1" action="<%=request.servervariables("script_name")%>?act=save" method="post">
<select name="test" onchange="document.getElementById('form1').submit();">
<%
do until rs.EOF=True
id=rs("id")
navn=rs("navn")
%>
<option value="<%=id%>"><%=navn%></option>
<%
rs.movenext
loop
%>
</select>
</form>
<%
end if
rs.close
set rs=nothing
%>

- her sender vi en querystring med som fortæller om vi skal gemme noget eller ej...

\Dan
Avatar billede chakazulu Nybegynder
06. februar 2008 - 18:10 #14
Nice... Der var nogle trykfejl i coden, men det giv jo lidt udfordring :)
              hit
DAN! DU ER 'THE MAN'
Lad mig gi' dig nogle point

Thx alot..

Til alle andre, det her det virker:

Code:

<%

Dim conn           
Dim rs           

Set conn = Server.CreateObject("ADODB.Connection")


conn.Open "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath("cykeldata.mdb")

%>


<%
if request.querystring("act")="save" then
set rs = conn.execute("select * from tblhjul where id_no=" & request.form("test"))
beskrivelse=rs("beskrivelse")
moms=rs("moms")
exmoms=rs("exmoms")
pris=rs("pris")
rs.close
set rs=nothing


%>

<% Response.Write beskrivelse %><br>
<% Response.Write moms %><br>
<% Response.Write exmoms %><br>
<% Response.Write pris %><br>





<% end if %>

<%
set rs = conn.execute("select * from tblhjul order by id_no")
if rs.EOF=False then
%>
<form id="form1" action="<%=request.servervariables("script_name")%>?act=save" method="post">
<select name="test" onchange="document.getElementById('form1').submit();">
<%
do until rs.EOF=True
id_no=rs("id_no")
beskrivelse=rs("beskrivelse")
%>
<option value="<%=id_no%>"><%=beskrivelse%></option>
<%
rs.movenext
loop
%>
</select>
</form>
<%
end if
rs.close
set rs=nothing
%>

Code slut:

Mvh Ian
Avatar billede Slettet bruger
06. februar 2008 - 18:49 #15
Jamen det var da godt det kom til at virke...

- Lige et godt råd:
Denne her:
<% Response.Write beskrivelse %><br>
<% Response.Write moms %><br>
<% Response.Write exmoms %><br>
<% Response.Write pris %><br>

Kan ligeså godt se sådan her ud:
<%=beskrivelse%><br>
<%=moms%><br>
<%=exmoms%><br>
<%=pris%><br>

- det fylder lidt mindre på den måde...

Hermed lægger jeg et svar...

\Dan
Avatar billede chakazulu Nybegynder
06. februar 2008 - 20:06 #16
Go' stil :)
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