Avatar billede mannik Nybegynder
02. juni 2003 - 20:03 Der er 18 kommentarer og
1 løsning

Form til Session, Indkøbskurv

Hej

Jeg er ny til ASP men prøver om jeg kan lave en side der udskriver et produktkatalog fra en Access 2000 database og hvor man kan bestille et givent antal af en vare ud for varenr. som jeg betegner "id" i databasen. Jeg har indtil videre :

Global.asa :
Sub Session_OnStart ( )
  Session ("id") =""
End Sub

Sub  Session_OnEnd ( )

Session ("id")=Nothing
End Sub 

Det formfelt der kan indtastes i :

  <input type="text"" name=""varenr"" id=""varenr""value="" & objRS("id") &"" size="5">

Den side det skal udskrives på :
<%   
    Session("id")=Request.Form("id")
             
%>

Jeg får ingen fejlmeddelser men det virker ikke, der bliver ingen ting udskrevet. Hvad gør jeg forkert ?

På forhånd tak
Avatar billede Slettet bruger
02. juni 2003 - 20:07 #1
Prøv
<input type="text" name="varenr" id="varenr" value="<%=objRS("id")%>" size="5">

Session("id")=Request.Form("varenr")
Avatar billede mannik Nybegynder
02. juni 2003 - 20:16 #2
Det var hurtigt! Men når jeg bruger dit forslag til indtastningsfeltet så viser den mine data ("id") i felterne fra databasen
Avatar billede Slettet bruger
02. juni 2003 - 20:18 #3
Ja for det er det du siger her: value="<%=objRS("id")%>"  hvis det er noget andet du skal have vist så skal du skrive den kolonne det er istedet for id.
Avatar billede luftballon Nybegynder
02. juni 2003 - 20:22 #4
Hvad er det præcist du vil? Request.Form("id") giver ingen mening i denne sammenhæng.
Avatar billede mannik Nybegynder
02. juni 2003 - 20:31 #5
Det vil måske hjælpe at se på siden jeg prøver at få til at virke http://www.manniken.dk/dreje.asp Jeg er lige startet på den så ikke grine for højt 8-) Som det kan ses er det mit første forsøg med dynamisk indhold. Er det mere tydeligt nu hvad jeg tale om ?
Avatar billede mannik Nybegynder
02. juni 2003 - 20:33 #6
Undskyld jeg glemte ; jeg kunne tænke mig at udskive bestilt antal på en anden side hvor det bliver muligt at redigere i det man bestiller før endelig afsendelse .
Avatar billede Slettet bruger
02. juni 2003 - 20:37 #7
Så vidt jeg kan se laver du en form for hver linie og kalder den det samme, er det korrekt?
Avatar billede mannik Nybegynder
02. juni 2003 - 20:42 #8
Ja det må være korrekt da selve tabellen vokser i takt med indtastninger i databasen. Når siden er færdig vil der være mange felter. Er det en forkert løsning jeg har valgt?
Avatar billede Slettet bruger
02. juni 2003 - 20:56 #9
Problemet er når du laver en form for hver linie og kalder den det samme så når du laver en request på den næste side kan den ikke vide hvad der skal hentes. Du skal nok hellere nummerere dine felter, og så nøjes med en form, du kan lave en tæller når du gennemløber dit recordset og så lave noget som dette her:

<input type="text" name="varenr<%=taeller%>" id="varenr" value="<%=objRS("id")%
>" size="5">

Så kan du sende tæller med til næste side og lave en løkke hvor du så henter med request("varenr" & taellernr)
Jeg kan desværre ikke lige huske den rigtige syntaks for requesten men mon ikke der er andre som kan hjælpe dig videre.
Avatar billede mannik Nybegynder
03. juni 2003 - 11:28 #10
Jeg takker indtil videre og håber at der er nogen der kan hjælpe lidt videre.
Avatar billede hpb Nybegynder
04. juni 2003 - 06:58 #11
for at hente data kunne du på første side :

<form action="????????.asp" method="post" name="Form">
<%
dim taeller
taeller = 1
DO UNTIL objRS.EOF%>
    <input type="text" name="varenr<%=taeller%>" value="<%=objRS("feltnavn")%>" size="5">

<%  objRS.MoveNext
LOOP
%>
<input type="hidden" name="AntalLinier" value="<%=objRS.RecordCount%>"
</Form>

AntalLinier vil give hvor mange linier der er, hvis hver record giver en linie !!

på næste side :
dim i, taeller
i = 1
taeller = Cint(Request.form("AntalLinier"))
DO WHILE i <= taeller

  Requst.Form("varenr"&i")  ... DO SOMETHING ...

  i = i + 1
LOOP
Avatar billede mannik Nybegynder
04. juni 2003 - 07:43 #12
Tak for en god ide, jeg prøver den lige om lidt. Som det vil fremgå er jeg HELT ny med ASP men jeg har lige et par spørgsmål til din løsning.

Skal der være et '>' efter taeller ?

Og hvad med de sidste 2 linier, skal de stå sådan som du har vist eller skal der "afsluttes" på en eller anden måde ?

På forhånd tak
Avatar billede hpb Nybegynder
04. juni 2003 - 11:39 #13
Ups der er en lille fejl :
Requst.Form("varenr"&i)  ... DO SOMETHING ...

efter LOOP skal der bare være ASP-slut-tegnet '%>' og evt. noget html alt efter hvad der skal ske eller noget mere af din egen ASP-kode

>> Skal der være et '>' efter taeller ?
Hvor vil du have et '>'  ??
Avatar billede mannik Nybegynder
06. juni 2003 - 10:17 #14
Hej
Nu har jeg prøvet at følge ovenstående men får en fejlmeddelse :Wrong number of arguments or invalid property assignment

/dreje.asp, line 105

Hvor linier 104 - 109 ser sådan ud :
<form action="shoppingbasket.asp" method="post" name="Form">
                <%
                dim taeller
                taeller = 1
                DO UNTIL objRS.EOF
                %>
Det vil sige at '<%' er linie 105

Mit spørgsmål vedr. '>' drejer sig om denne linie:  DO WHILE i <= taeller
Avatar billede hpb Nybegynder
07. juni 2003 - 21:57 #15
hmmm er du allerede inde i en ASP-blok når du skriver din "<form action=.osv"  ?? har ikke set denne fejl før i så simpel en linie :-o

vedr. DO WHILE skal det være <= da det skal gøres med i er mindre end eller lig med taeller
Avatar billede mannik Nybegynder
08. juni 2003 - 07:57 #16
Tak for din forklaring vedr. DO WHILE. Jeg er slem til at glemme større eller mindre end tegnene. Det er nok alderen der er ved at gøre sig gældende.
Jeg mener ikke at der er en ASP blok der hvor jeg har mit input felt. Nedenstående poster jeg min omkringliggende kode som den ser ud FØR jeg laver den om :

<tr>
<td><b>Best nr</b></td>
<td><b>D min</b></td>
<td><b>L</b></td>
<td><b>E</b></td>
<td><b>Platte type</b></td>
<td><b>Pris</b></td>
<td><b>Bestil</b></td>
<td><b>Tegning</b></td>
<td><b>Billede</b></td>
</tr>
            <%
Set objRS=objConndrejebase.Execute("SELECT id, d_min, l, e, insert, price, drawing, image FROM dreje_indv")
Do while Not objRS.EOF
Response.Write"<tr><td>" & objRS("id") &"</td>"
Response.Write"<td>" & objRS("d_min") &"</td>"
Response.Write"<td>" & objRS("l") &"</td>"
Response.Write"<td>" & objRS("e") &"</td>"
Response.Write"<td>" & objRS("insert") &"</td>"
Response.Write"<td>" & objRS("price") &"</td>"
%>
            <td>
                <form action="shoppingbasket.asp" method="post" name="order">
                <input type "text" name="order" size="5">
               
           
            </td>
            <td><% if ObjRS("drawing")<>""then %><img src='config/datasources/dreje_images/<%= ObjRS ("drawing")%>' width="200" height="100"><% end if %></td>
            <td><% if ObjRS("image")<>""then %><img src='config/datasources/dreje_images/<%= ObjRS ("image")%>' width="71" height="100"><% end if %></td>
            </tr>
           
            <%
objRS.Movenext
Loop

objRS.Close
Set objRS = Nothing

objConndrejebase.Close
Set objConndrejebase = Nothing
%>
             
        </table>
        <input type="submit" value="Send Bestilling">
        </form>
    </body>

</html>

Kan det evt være det 'movenext' loop der driller ?
Avatar billede Slettet bruger
24. september 2003 - 20:23 #17
Har du fået løst dit problem?
Avatar billede mannik Nybegynder
25. september 2003 - 07:31 #18
Jo tak , det har jeg. Løsningen viste sig at være en helt anden. For at få det til at at virke overhovedet har jeg været nødt til at skrive ud til en liste og så løbe den liste igennem. Det eneste jeg anvender session til er at forsyne den enkelte bruger med et id . Jeg skal gerne poste hele scriptet hvis det måtte have nogen interesse? Jeg lukker spørgsmålet . Tak for alle gode råd.
Avatar billede steen_hansen Forsker
25. september 2003 - 07:46 #19
Ja tak, mannik, det kunne være interessant at se scriptet
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