Avatar billede gommasch Nybegynder
20. juli 2004 - 07:46 Der er 16 kommentarer og
1 løsning

Vis kun form-knap hvis

Hvordan får man sin kode til kun, at vise en <form>-knap hvis der er data i et bestemt felt i databasen ? Som det er nu bliver knappen altid vist med meldingen "Ingen opgraderinger tilgængelige, ring for opgradering." ved tryk.

Har følgende kode:

<%
strDSN = "DRIVER={Microsoft Access Driver (*.mdb)};DBQ=" & Server.MapPath("/database/hovedmenu.mdb")
Set myCon = Server.CreateObject("ADODB.Connection")
myCon.Open strDSN

Varenr = request.querystring("varenr")

SQL = "SELECT (SELECT pris  FROM produkter where config.varenr=produkter.varenr) AS Prispc, (SELECT secuID FROM config where config.varenr=produkter.varenr) AS secuID, (SELECT varenavn FROM produkter where config.varenr=produkter.varenr) AS varenavn, (SELECT detaljemenu FROM produkter WHERE varenr=kabinet) AS DetaljemenuKAB, (SELECT detaljemenu FROM produkter WHERE varenr=PSU) AS DetaljemenuPSU, (SELECT detaljemenu FROM produkter WHERE varenr=CPU1) AS DetaljemenuCPU1, (SELECT detaljemenu FROM produkter WHERE varenr=CPU2) AS DetaljemenuCPU2, (SELECT pris FROM produkter WHERE varenr=kabinet) AS priskabinet, (SELECT pris FROM produkter WHERE varenr=PSU) AS prisPSU , (SELECT pris FROM produkter WHERE varenr=CPU1) AS prisCPU1, (SELECT pris FROM produkter WHERE varenr=CPU2) AS prisCPU2 FROM Produkter INNER JOIN Config ON Produkter.Varenr=Config.Varenr WHERE Config.Varenr='" & varenr & "' AND (SELECT webstatus FROM produkter WHERE varenr=kabinet)='www'"

Set rs = mycon.Execute(SQL)

secuID=rs("secuID")
detaljemenuKAB = rs("detaljemenuKAB")
detaljemenuPSU = rs("detaljemenuPSU")
detaljemenuCPU1 = rs("detaljemenuCPU1")
detaljemenuCPU2 = rs("detaljemenuCPU2")
priskabinet = rs("priskabinet")
prispsu = rs("prispsu")
priscpu1 = rs("priscpu1")
priscpu2 = rs("priscpu2")

%>

<%
If not (rs.BOF or rs.EOF) Then
Do while not rs.EOF

Response.write "<form method='GET' action='prodframeupg.asp' target='_self' onsubmit='return FrontPage_Form2_Validator(this)' language='JavaScript' name='Upgrade'>"
Response.write "<p align='left'><font size=2 face='Verdana, Arial, Helvetica, sans-serif'>"
Response.write "<input type='hidden' name='prisx' value='" & Priskabinet & "'>"
Response.write "<input type='hidden' name='detaljemenu' value='" & detaljemenuKAB & "'>"
Response.write "<input type='hidden' name='secuID' value='" & secuID & "'>"
Response.write "<INPUT TYPE=submit NAME=foo VALUE='Kabinet'></form>"

rs.movenext
loop
Else

Response.write "Ingen opgraderinger tilgængelige, ring for opgradering."

End if
%>
Avatar billede gommasch Nybegynder
20. juli 2004 - 07:48 #1
I dette tilfælde drejer det sig om data i feltet "kabinet".
Avatar billede dr_chaos Nybegynder
20. juli 2004 - 08:42 #2
if rs("kabinet") not = "" then
knap
else
ingen knap
end if
Avatar billede dr_chaos Nybegynder
20. juli 2004 - 08:42 #3
noget i den stil ?
Avatar billede gommasch Nybegynder
20. juli 2004 - 10:27 #4
Har prøvet at putte den ind men får fejl:

<%
if rs("CPU2") not = "" then
'knap
'else
'ingen knap
'end if

'If not (rs.BOF or rs.EOF) Then
Do while not rs.EOF

Response.write "<form method='GET' action='prodframeupg.asp' target='_self' onsubmit='return FrontPage_Form2_Validator(this)' language='JavaScript' name='Upgrade'>"
Response.write "<p align='left'><font size=2 face='Verdana, Arial, Helvetica, sans-serif'>"
Response.write "<input type='hidden' name='prisx' value='" & PrisCPU2 & "'>"
Response.write "<input type='hidden' name='detaljemenu' value='" & detaljemenuCPU2 & "'>"
Response.write "<input type='hidden' name='secuID' value='" & secuID & "'>"
Response.write "<INPUT TYPE=submit NAME=foo VALUE='CPU sokkel 2'></form>"

rs.movenext
loop
Else

Response.write "Ingen opgraderinger tilgængelige, ring for opgradering."

End if
%>


FEJL:
Microsoft VBScript compilation error '800a03f9'
Expected 'Then'
/configframe.asp, line 72
if rs("kabinet") not = "" then
Avatar billede gommasch Nybegynder
20. juli 2004 - 10:29 #5
Undskyld - fejlen er selvfølgelig:
Microsoft VBScript compilation error '800a03f9'
Expected 'Then'
/configframe.asp, line 72
if rs("cpu2") not = "" then
Avatar billede dr_chaos Nybegynder
20. juli 2004 - 10:35 #6
if rs("CPU2") <> "" then
prøv med den
Avatar billede gommasch Nybegynder
20. juli 2004 - 11:30 #7
Med lidt modifikationer i SQL'en ser det ud til at virke. Dog får jeg fejl når jeg tilføjer flere loops efter hinanden. Kun den første fungerer. Herefter kommer følgende fejl:

error '80020009'
/configframe.asp, line 97

Samme fejl hvis jeg bytter rundt på de to loops, hver for sig virker de fint.


<%
if rs("KABINET") <> "" then
Do while not rs.EOF

Response.write "<form method='GET' action='prodframeupg.asp' target='_self' onsubmit='return FrontPage_Form2_Validator(this)' language='JavaScript' name='Upgrade'>"
Response.write "<p align='left'><font size=2 face='Verdana, Arial, Helvetica, sans-serif'>"
Response.write "<input type='hidden' name='prisx' value='" & PrisKABINET & "'>"
Response.write "<input type='hidden' name='detaljemenu' value='" & detaljemenuKAB & "'>"
Response.write "<input type='hidden' name='secuID' value='" & secuID & "'>"
Response.write "<INPUT TYPE=submit NAME=foo VALUE='Kabinet'></form>"

rs.movenext
loop
Else

End if
%>

<%
if rs("CPU2") <> "" then
Do while not rs.EOF

Response.write "<form method='GET' action='prodframeupg.asp' target='_self' onsubmit='return FrontPage_Form2_Validator(this)' language='JavaScript' name='Upgrade'>"
Response.write "<p align='left'><font size=2 face='Verdana, Arial, Helvetica, sans-serif'>"
Response.write "<input type='hidden' name='prisx' value='" & PrisCPU2 & "'>"
Response.write "<input type='hidden' name='detaljemenu' value='" & detaljemenuCPU2 & "'>"
Response.write "<input type='hidden' name='secuID' value='" & secuID & "'>"
Response.write "<INPUT TYPE=submit NAME=foo VALUE='CPU sokkel 2'></form>"

rs.movenext
loop
Else

End if
%>
Avatar billede gommasch Nybegynder
20. juli 2004 - 11:32 #8
Line 97 er:
if rs("CPU2") <> "" then
Avatar billede gommasch Nybegynder
20. juli 2004 - 11:36 #9
Hvis der ingen data er til første loop fortsættes fint uden fejl på andet loop. Fejlen opstår på 2. loop kun når begge loops skal vise noget.

Jeg skal tilføje flere loops endnu så det er lidt træls.
Avatar billede dr_chaos Nybegynder
20. juli 2004 - 11:44 #10
prøv at ændre dit loop til:
if rs("KABINET") <> "" then
<%do%>
<form method='GET' action='prodframeupg.asp' target='_self' onsubmit='return FrontPage_Form2_Validator(this)' language='JavaScript' name='Upgrade'>
<p align='left'><font size=2 face='Verdana, Arial, Helvetica, sans-serif'>
<input type='hidden' name='prisx' value='" & PrisKABINET & "'>
<input type='hidden' name='detaljemenu' value='" & detaljemenuKAB & "'>
input type='hidden' name='secuID' value='" & secuID & "'>
INPUT TYPE=submit NAME=foo VALUE='Kabinet'></form>

<%rs.movenext
loop while not rs.eof%>
<%end if%>
Avatar billede dr_chaos Nybegynder
20. juli 2004 - 11:46 #11
du skal bruge:
<%if rs("KABINET") <> "" then
do%>
<form method='GET' action='prodframeupg.asp' target='_self' onsubmit='return FrontPage_Form2_Validator(this)' language='JavaScript' name='Upgrade'>
<p align='left'><font size=2 face='Verdana, Arial, Helvetica, sans-serif'>
<input type='hidden' name='prisx' value='" & PrisKABINET & "'>
<input type='hidden' name='detaljemenu' value='" & detaljemenuKAB & "'>
<input type='hidden' name='secuID' value='" & secuID & "'>
<INPUT TYPE=submit NAME=foo VALUE='Kabinet'></form>

<%rs.movenext
loop while not rs.eof%>
<%else%>
<p></p>
<%end if%>
Avatar billede dr_chaos Nybegynder
20. juli 2004 - 11:46 #12
så slipper du for alle de response.write
Avatar billede gommasch Nybegynder
20. juli 2004 - 12:27 #13
Stadig samme fejl. Kun første loop fungerer. Herefter:
error '80020009'
/configframe.asp, line 93

Samme fejl hvis jeg bytter rundt på de to loops, hver for sig virker de fint.

<%
if rs("KABINET") <> "" then
do
%>

<form method='GET' action='prodframeupg.asp' target='_self' onsubmit='return FrontPage_Form2_Validator(this)' language='JavaScript' name='Upgrade'>
<p align='left'><font size=2 face='Verdana, Arial, Helvetica, sans-serif'>
<input type='hidden' name='prisx' value="<%=PrisKABINET%>">
<input type='hidden' name='detaljemenu' value="<%=DetaljemenuKAB%>">
<input type='hidden' name='secuID' value="<%=SecuID%>">
<INPUT TYPE=submit NAME=foo VALUE='Kabinet'>
</form>

<%
rs.movenext
loop while not rs.eof
%>

<%else%>
<p></p>
<%end if%>


<%
if rs("CPU2") <> "" then
do
%>

<form method='GET' action='prodframeupg.asp' target='_self' onsubmit='return FrontPage_Form2_Validator(this)' language='JavaScript' name='Upgrade'>
<p align='left'><font size=2 face='Verdana, Arial, Helvetica, sans-serif'>
<input type='hidden' name='prisx' value="<%=PrisCPU2%>">
<input type='hidden' name='detaljemenu' value="<%=DetaljemenuCPU2%>">
<input type='hidden' name='secuID' value="<%=SecuID%>">
<INPUT TYPE=submit NAME=foo VALUE='CPU sokkel 2'>
</form>

<%
rs.movenext
loop while not rs.eof
%>

<%else%>
<p></p>
<%end if%>
Avatar billede gommasch Nybegynder
20. juli 2004 - 20:41 #14
Har prøvet følgende, kun første loop fungerer, de følgende springes over eller viser intet.

<%
detaljemenuKAB = rs("detaljemenuKAB")
prisKAB = rs("prisKAB")
if rs("DetaljemenuKAB") <> "" then
do
%>

<form method='GET' action='prodframeupg.asp' target='_self' onsubmit='return FrontPage_Form2_Validator(this)' language='JavaScript' name='Upgrade'>
<p align='left'><font size=2 face='Verdana, Arial, Helvetica, sans-serif'>
<input type='hidden' name='prisx' value="<%=PrisKAB%>">
<input type='hidden' name='detaljemenu' value="<%=DetaljemenuKAB%>">
<input type='hidden' name='secuID' value="<%=SecuID%>">
<INPUT TYPE=submit NAME=foo VALUE='Kabinet'>
</form>

<%
rs.movenext
loop while not rs.eof
%>

<%else%>

<%
detaljemenuPSU = rs("detaljemenuPSU")
prispsu = rs("prispsu")
if rs("DetaljemenuPSU") <> "" then
do
%>

<form method='GET' action='prodframeupg.asp' target='_self' onsubmit='return FrontPage_Form2_Validator(this)' language='JavaScript' name='Upgrade'>
<p align='left'><font size=2 face='Verdana, Arial, Helvetica, sans-serif'>
<input type='hidden' name='prisx' value="<%=PrisPSU%>">
<input type='hidden' name='detaljemenu' value="<%=DetaljemenuPSU%>">
<input type='hidden' name='secuID' value="<%=SecuID%>">
<INPUT TYPE=submit NAME=foo VALUE='Strømforsyning / PSU'>
</form>

<%
rs.movenext
loop while not rs.eof
%>

<%else%>

<%
detaljemenuCPU2 = rs("detaljemenuCPU2")
prisCPU2 = rs("prisCPU2")
if rs("DetaljemenuCPU2") <> "" then
do
%>

<form method='GET' action='prodframeupg.asp' target='_self' onsubmit='return FrontPage_Form2_Validator(this)' language='JavaScript' name='Upgrade'>
<p align='left'><font size=2 face='Verdana, Arial, Helvetica, sans-serif'>
<input type='hidden' name='prisx' value="<%=PrisCPU2%>">
<input type='hidden' name='detaljemenu' value="<%=DetaljemenuCPU2%>">
<input type='hidden' name='secuID' value="<%=SecuID%>">
<INPUT TYPE=submit NAME=foo VALUE='CPU sokkel 2'>
</form>

<%
rs.movenext
loop while not rs.eof
%>

<%else%>

<%end if%>
<%end if%>
<%end if%>
Avatar billede gommasch Nybegynder
20. juli 2004 - 20:44 #15
HTML:

<form method='GET' action='prodframeupg.asp' target='_self' onsubmit='return FrontPage_Form2_Validator(this)' language='JavaScript' name='Upgrade'>
<p align='left'><font size=2 face='Verdana, Arial, Helvetica, sans-serif'>
<input type='hidden' name='prisx' value="636">
<input type='hidden' name='detaljemenu' value="Tower ATX">
<input type='hidden' name='secuID' value="4">
<INPUT TYPE=submit NAME=foo VALUE='Kabinet'>
</form>



        </td>
    </tr>
</table>

        </td>
    </tr>
</table>

</body>
</html>
Avatar billede gommasch Nybegynder
21. juli 2004 - 15:27 #16
I princippet virker dine råd nu dr. chaos. Jeg lægger et nyt spørgsmål som bedre matcher mit nuværende problem.

Smid lige et svar så får du points.
Avatar billede dr_chaos Nybegynder
21. juli 2004 - 15:41 #17
ok :)
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