Avatar billede bruger64 Nybegynder
28. januar 2006 - 11:14 Der er 34 kommentarer og
1 løsning

noget galt med : maerke=request("maerke")

jeg er ved at lave en opsummering af valg brugeren har truffet so så skal sendes til en anden side som skal bekræftes.
Nedenstående er side 1. her vælger brugeren som eksempel nogle biler etc.
disse valg bliver opsumeret og sendt til side2 som hedder bil4.asp. men denne siden skriver kun farven og ikke andet selv om jeg har requestet mærke, model og farven, hvad er galt?

side1: bil1.asp
<p>V&aelig;lg m&aelig;rke </p>
<form name="form1" method="post" action="bil1.asp">
  <select name="maerke" id="maerke"  onchange="form1.submit();">
    <option>Vælg mærke</option>
    <!--#include virtual="connect/connect-bil.asp"-->
    <% dim rs, maerke, model, farve
    Set RS = Server.CreateObject("ADODB.Recordset")
RS.open "select distinct maidnr,maerke from q_mmf order by maerke desc", objConn, , , adCmdText
    Do While Not RS.EOF%>
    <option value="<%=rs("maidnr")%>"><%=rs("maerke")%></option>
    <% rs.movenext
    loop
    rs.close
    set rs = nothing       
    %>
  </select>
</form>
<%
    maerke=request("maerke")
    if maerke <> "" then
    Set RS = Server.CreateObject("ADODB.Recordset")
RS.open "select distinct moidnr,maerke, model from q_mmf where maidnr ="&maerke&" order by model desc", objConn, , , adCmdText
%>
<p>Du har valgt <%=rs("maerke")%> her har vi følgende modeller </p>
<form name="form2" method="post" action="bil1.asp">
  <select name="model"  onchange="form2.submit();" >
    <option>Vælg model </option>
    <%
    Do While Not RS.EOF%>
    <option value="<%=rs("moidnr")%>"><%=rs("model")%></option>
    <% rs.movenext
    loop
    rs.close
    set rs = nothing
       
    %>
  </select>
  <input name="maerke" type="hidden" id="maerke" value="<%=maerke%>">
</form>
<% end if%>
<%
    model=request("model")
    if model <> "" Then
    Set RS = Server.CreateObject("ADODB.Recordset")
RS.open "select distinct maerke, model, farve, idnr from q_mmf where moidnr ="&model&" order by model desc", objConn, , , adCmdText
%>
<p>Du har valgt <%=rs("maerke")%> og modellen <%=rs("model")%> her har vi følgende farve </p>
<form name="form3" method="post" action="bil4.asp">
  <select name="farve" onchange="form3.submit();">
    <option>Vælg farve </option>
    <%
    Do While Not RS.EOF%>
    <option><%=rs("farve")%></option>
        <% rs.movenext
    loop
    rs.close
    set rs = nothing       
    %>
  </select>
  <input name="maerke" type="hidden" value="<%=(maerke)%>">
  <input name="model" type="hidden" value="<%=(model)%>">
</form>
<% end if%>

side2: bil4.asp
<%
maerke=request("maerke")
model=request("model")
farve=request("farve")

dim rs,maerke,model,farve
%>
<%response.write maerke %>
<br />
<%response.write model %>
<br />
<%response.write farve %>
<br />
Avatar billede trekkies Juniormester
28. januar 2006 - 11:17 #1
Tror at du skal bruge Request.Form i stedet for Request
Avatar billede trekkies Juniormester
28. januar 2006 - 11:41 #2
Så din Request form ser sådan ud:
maerke=Request.Form("maerke")
model=Request.Form("model")
farve=Request.Form("farve")
Avatar billede bruger64 Nybegynder
28. januar 2006 - 11:43 #3
det ændrer ikke noget jeg har lige testet
Avatar billede trekkies Juniormester
28. januar 2006 - 11:48 #4
Har du ændre request til Request.Form på begge sider?
Avatar billede bruger64 Nybegynder
28. januar 2006 - 11:58 #5
nu får jeg farve og to id numrer og ikke mærke og modelnavn
Avatar billede nielle Nybegynder
28. januar 2006 - 12:05 #6
Har du prøvet at lave en Vis Kode for hver form undervejs i processen? Kommer dine hidden-felter rigtigt med hver gang?
Avatar billede bruger64 Nybegynder
28. januar 2006 - 12:11 #7
her er vis kode,

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>Untitled Document</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>
<body>
<p>V&aelig;lg m&aelig;rke </p>
<form name="form1" method="post" action="bil1.asp">
  <select name="maerke" id="maerke"  onchange="form1.submit();">
    <option>Vælg mærke</option>
   
    <option value="11">Stjernebilen</option>
   
    <option value="9">Skoda</option>
   
    <option value="4">Opel</option>
   
    <option value="1">Mercedes</option>
   
    <option value="3">Ford</option>
   
    <option value="2">Bmw</option>
   
  </select>
</form>

<p>Du har valgt Opel her har vi følgende modeller </p>
<form name="form2" method="post" action="bil1.asp">
  <select name="model"  onchange="form2.submit();" >
    <option>Vælg model </option>
   
    <option value="9">Vectra 2.0</option>
   
    <option value="8">Astra 1.8</option>
   
  </select>
  <input name="maerke" type="hidden" id="maerke" value="4">
</form>

<p>Du har valgt Opel og modellen Astra 1.8 her har vi følgende farve </p>
<form name="form3" method="post" action="bil4.asp">
  <select name="farve" onchange="form3.submit();">
    <option>Vælg farve </option>
   
    <option>Grøn</option>
       
    <option>Rød</option>
       
  </select>
  <input name="maerke" type="hidden" value="4">
  <input name="model" type="hidden" value="8">
</form>

</body>
</html>
Avatar billede nielle Nybegynder
28. januar 2006 - 12:18 #8
Det ser rigtigt ud. :^)

Hvad bliver der så udskrevet på siden bil4.asp når du submitter den sidste form?
Avatar billede bruger64 Nybegynder
28. januar 2006 - 12:20 #9
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>Untitled Document</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
</head>

<body>
9
<br />
18
<br />
Rød
<br />
</body>
</html>
Avatar billede nielle Nybegynder
28. januar 2006 - 12:22 #10
Hvor kommer værdierne 9 og 18 fra?
Avatar billede bruger64 Nybegynder
28. januar 2006 - 12:24 #11
prøver lige igen side1:


<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>Untitled Document</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>
<body>
<p>V&aelig;lg m&aelig;rke </p>
<form name="form1" method="post" action="bil1.asp">
  <select name="maerke" id="maerke"  onchange="form1.submit();">
    <option>Vælg mærke</option>
   
    <option value="11">Stjernebilen</option>
   
    <option value="9">Skoda</option>
   
    <option value="4">Opel</option>
   
    <option value="1">Mercedes</option>
   
    <option value="3">Ford</option>
   
    <option value="2">Bmw</option>
   
  </select>
</form>

<p>Du har valgt Skoda her har vi følgende modeller </p>
<form name="form2" method="post" action="bil1.asp">
  <select name="model"  onchange="form2.submit();" >
    <option>Vælg model </option>
   
    <option value="18">Octavia</option>
   
  </select>
  <input name="maerke" type="hidden" id="maerke" value="9">
</form>

<p>Du har valgt Skoda og modellen Octavia her har vi følgende farve </p>
<form name="form3" method="post" action="bil4.asp">
  <select name="farve" onchange="form3.submit();">
    <option>Vælg farve </option>
   
    <option>Rød</option>
       
  </select>
  <input name="maerke" type="hidden" value="9">
  <input name="model" type="hidden" value="18">
</form>

</body>
</html>
side2:


<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>Untitled Document</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
</head>

<body>
9
<br />
18
<br />
Rød
<br />
</body>
</html>
Avatar billede nielle Nybegynder
28. januar 2006 - 12:35 #12
Hvad er så problemet? De 3 værdier du poster fra form3, Rød, 8 og 18, kommer jo pænt over til bil4.asp siden.
Avatar billede nielle Nybegynder
28. januar 2006 - 12:37 #13
Ja altså... Rød, *9* og 18
Avatar billede bruger64 Nybegynder
28. januar 2006 - 12:43 #14
ja men jeg ønsker at der skal stå maerkenavnet og modelnavnet samt farven og  ikke idnr eller andet.
Avatar billede nielle Nybegynder
28. januar 2006 - 12:49 #15
Det er jo dig selv som har valgt at sende id'erne med i stedet for tekstværdien. Det kan du jo bare lade være med. Men du kan da også, på baggrund af id'erne, udtrække tekstværdierne fra databasen en gang til.
Avatar billede bruger64 Nybegynder
28. januar 2006 - 12:54 #16
ja - som jeg har forstået min opsætning så skal jeg bruge id'erne til at hente info afhængig af foregående valg - og jeg sender jo til sidst som hidden:
  <input name="maerke" type="hidden" value="<%=(maerke)%>">
  <input name="model" type="hidden" value="<%=(model)%>"> så jeg forstår ikke at maerke ikke viser mærkenavn eksempelvis: opel
og
forstår ikke at model ikke viser modelnavn eksempelvis : Vectra
Avatar billede bruger64 Nybegynder
28. januar 2006 - 12:58 #17
bil4.asp burde da skrive mærke, model og farve - eller??
Avatar billede nielle Nybegynder
28. januar 2006 - 13:05 #18
I den sidste form på bil1.asp siden sår maerke og model som deres id, ikke som deres tekst-værdi:

<p>Du har valgt Skoda og modellen Octavia her har vi følgende farve </p>
<form name="form3" method="post" action="bil4.asp">
    <select name="farve" onchange="form3.submit();">
        <option>Vælg farve </option>
        <option>Rød</option>
    </select>
    <input name="maerke" type="hidden" value="9">
    <input name="model" type="hidden" value="18">
</form>

- og derfor er det de værdier som bliver postet. Siden bil4.asp opfører sim altså som den bør.
Avatar billede bruger64 Nybegynder
28. januar 2006 - 13:10 #19
det kan jeg ikke se - hvor er det henne at det står???

jeg har jo lige benyttet sætningen:
<p>Du har valgt <%=rs("maerke")%> og modellen <%=rs("model")%> her har vi følgende farve </p>
og her skrives mærkenavn og model navn
Avatar billede bruger64 Nybegynder
28. januar 2006 - 13:16 #20
jeg kan se i kildekoden at der sendes id'er med - men hvor i koden sker dette eller hvorfor sendes mærkenavnet og modelnavnet ikke med? og hvor sker det i koden?
Avatar billede nielle Nybegynder
28. januar 2006 - 13:17 #21
Det står såmæn lige her i din Vis Kilde:

<input name="maerke" type="hidden" value="9">
<input name="model" type="hidden" value="18">


Husk nu på at du får model og maerke fra den foregående form:

maerke = request.request("maerke")
model = request.request("model")

- og at det faktisk er dem du skriber ud i din form.


Prøv at ændre:

<p>Du har valgt <%=rs("maerke")%> og modellen <%=rs("model")%> her har vi følgende farve </p>
<form name="form3" method="post" action="bil4.asp">
  <select name="farve" onchange="form3.submit();">
    <option>Vælg farve </option>
    <%
    Do While Not RS.EOF%>
    <option><%=rs("farve")%></option>
        <% rs.movenext
    loop
    rs.close
    set rs = nothing       
    %>
  </select>
  <input name="maerke" type="hidden" value="<%=(maerke)%>">
  <input name="model" type="hidden" value="<%=(model)%>">
</form>
<% end if%>

- til:

<p>Du har valgt <%=rs("maerke")%> og modellen <%=rs("model")%> her har vi følgende farve </p>
<form name="form3" method="post" action="bil4.asp">
  <select name="farve" onchange="form3.submit();">
    <option>Vælg farve </option>
    <%
    Do While Not RS.EOF%>
    <option><%=rs("farve")%></option>
        <% rs.movenext
    loop
    rs.close
    set rs = nothing       
    %>
  </select>
  <input name="maerke" type="hidden" value="<%=rs("maerke")%>">
  <input name="model" type="hidden" value="<%=rs("model")">
</form>
<% end if%>

- så går det nok bedre.

Din fejl består altså i at du har glemt at skrive rs foran parenteserne ... for det henter nemlig fra variablene i stedet for fra dit recordset.
Avatar billede bruger64 Nybegynder
28. januar 2006 - 13:26 #22
<p>Du har valgt <%=rs("maerke")%> og modellen <%=rs("model")%> her har vi følgende farve </p>
<form name="form3" method="post" action="bil4.asp">
  <select name="farve" onchange="form3.submit();">
    <option>Vælg farve </option>
    <%
    Do While Not RS.EOF%>
    <option><%=rs("farve")%></option>
        <% rs.movenext
    loop
    rs.close
    set rs = nothing       
    %>
  </select>
  <input name="maerke" type="hidden" value="<%=rs("maerke")%>">
  <input name="model" type="hidden" value="<%=rs("model")%>">
</form>
<% end if%>
gir denne besked:
Microsoft VBScript runtime error '800a000d'

Type mismatch

/bil1.asp, line 72

vis kilde:


<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>Untitled Document</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>
<body>
<p>V&aelig;lg m&aelig;rke </p>
<form name="form1" method="post" action="bil1.asp">
  <select name="maerke" id="maerke"  onchange="form1.submit();">
    <option>Vælg mærke</option>
   
    <option value="11">Stjernebilen</option>
   
    <option value="9">Skoda</option>
   
    <option value="4">Opel</option>
   
    <option value="1">Mercedes</option>
   
    <option value="3">Ford</option>
   
    <option value="2">Bmw</option>
   
  </select>
</form>

<p>Du har valgt Stjernebilen her har vi følgende modeller </p>
<form name="form2" method="post" action="bil1.asp">
  <select name="model"  onchange="form2.submit();" >
    <option>Vælg model </option>
   
    <option value="17">Stjerne1</option>
   
    <option value="20">hugo</option>
   
  </select>
  <input name="maerke" type="hidden" id="maerke" value="11">
</form>

<p>Du har valgt Stjernebilen og modellen hugo her har vi følgende farve </p>
<form name="form3" method="post" action="bil4.asp">
  <select name="farve" onchange="form3.submit();">
    <option>Vælg farve </option>
   
    <option>Gul</option>
       
    <option>lilla</option>
       
    <option>Rød</option>
       
    <option>Sølv</option>
       
  </select>
  <input name="maerke" type="hidden" value= <font face="Arial" size=2>
<p>Microsoft VBScript runtime </font> <font face="Arial" size=2>error '800a000d'</font>
<p>
<font face="Arial" size=2>Type mismatch</font>
<p>
<font face="Arial" size=2>/bil1.asp</font><font face="Arial" size=2>, line 72</font>
Avatar billede nielle Nybegynder
28. januar 2006 - 13:29 #23
Du bliver nødt til at flytte stedet hvor du lukker til databasen, til efter at du har udskrevet fra den for sidste gang, dvs. til efter de to sidste linjer:

<input name="maerke" type="hidden" value="<%=rs("maerke")%>">
<input name="model" type="hidden" value="<%=rs("model")">%>">
Avatar billede bruger64 Nybegynder
28. januar 2006 - 13:30 #24
/bil1.asp, line 72 er :
  <input name="maerke" type="hidden" value="<%=rs("maerke")%>">
Avatar billede bruger64 Nybegynder
28. januar 2006 - 13:33 #25
rs.close
    set rs = nothing

hvor skal det hen, har prøvet at flytte det til:

    Do While Not RS.EOF%>
    <option><%=rs("farve")%></option>
        <% rs.movenext
    loop
       
    %>
  </select>
  <input name="maerke" type="hidden" value="<%=rs("maerke")%>">
  <input name="model" type="hidden" value="<%=rs("model")%>">
</form>
<% 
rs.close
    set rs = nothing 

end if%>

men det virker ikke
Avatar billede nielle Nybegynder
28. januar 2006 - 13:35 #26
Nej, problemet i den sammenhæng er at du køre en rs.movenext og at du dermed "går forbi" den række hvor resultaterne ligger i.
Avatar billede bruger64 Nybegynder
28. januar 2006 - 13:38 #27
jeg laver jo en loop til enden af filen også går jeg til input hidden - eller ??
Avatar billede nielle Nybegynder
28. januar 2006 - 13:40 #28
Ja, do laver en loop for au udskrive dine <oprion>. Når denne loop er løbet til ende så er der ikke flere rækker tilbage, og derefter giver det fejl at forsøge at skrive så dan noget som rs("model").
Avatar billede nielle Nybegynder
28. januar 2006 - 13:41 #29
Prøver lige igen:

Ja, du laver en loop for at udskrive dine <option>-linjer. Når denne loop er løbet til ende, er der ikke flere rækker tilbage, og derefter giver det fejl at forsøge at skrive sådan noget som rs("model").
Avatar billede nielle Nybegynder
28. januar 2006 - 13:43 #30
Løsningen på den slags problemer er at få fat på værdierne *før* at loopen er færdig:

<%
model = "" & Request.Form("model")
If model <> "" Then
    Set rs = Server.CreateObject("ADODB.Recordset")
    rs.Open "SELECT DISTINCT maerke, model, farve, idnr FROM q_mmf WHERE moidnr = " & model & " ORDER BY model DESC", objConn, , , adCmdText

    maerke = rs("maerke")
    model = rs("model")
%>
<p>Du har valgt <% =maerke %> og modellen <% =model %> her har vi følgende farve</p>
<form name="form3" method="post" action="bil4.asp">
    <select name="farve" onchange="form3.submit();">
        <option>Vælg farve</option>
<%
    Do While Not rs.EoF
%>
        <option><% =rs("farve") %></option>
        <% rs.MoveNext
    Loop
    rs.Close
    Set rs = Nothing       
%>
    </select>
<input name="maerke" type="hidden" value="<% =maerke %>">
<input name="model" type="hidden" value="<% =model %>">
</form>
<%
End If
%>
Avatar billede bruger64 Nybegynder
28. januar 2006 - 13:45 #31
jeg starter med at lavwe et recorset fra en forspørgelse q_mmf.

dette recordset burde vel have maerke og modelnavn "kopieret" ?
Avatar billede bruger64 Nybegynder
28. januar 2006 - 13:52 #32
det virker sørme nu - tusinde tak for din tålmodighed - smid et svar for point

hvad sker der her?? :
model = "" & Request.Form("model")
min var:
model=Request.Form("model")
Avatar billede nielle Nybegynder
28. januar 2006 - 13:52 #33
Først en forklaring hav hvad der gik galt

Et recordset består af et antal rækker og en pointer som siger hvor at man er henne:

rs:

række1 <==
række2
række3
række4

Hver gang at du køre en MoveNext, flytter pointeren en gang ed:

række1
række2 <==
række3
række4

Når at du har løbet igennem en Loop med betiongelsen:

Do While Not rs.EoF
    rs.MoveNext
Loop

- er pointeren løbet ud over enden af recordsettet:

række1
række2
række3
række4
<==

- og når dette er sket så kan man ikke spørge på værdier som f.eks.:

Response.Write rs("model")

- for så peger rs ikke på noget som helst mere.
Avatar billede nielle Nybegynder
28. januar 2006 - 13:54 #34
Forskellen på:

model = "" & Request.Form("model")

- og:

model=Request.Form("model")

- er at den første også virker hvis at der stod NULL i model-feltet.
Avatar billede nielle Nybegynder
28. januar 2006 - 13:54 #35
... og et svar :^)
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