Toon posts:

[VB] Bestellijstloop met niet werkende knoppen

Pagina: 1
Acties:

Verwijderd

Topicstarter
Heeey,

Even kort een situatieschets van waar ik mee zit:

Momenteel ben ik druk bezig met het bouwen van een online bestelsysteem. Hiervoor gebruik ik een file genaamd 'categorien.asp' die ik heb aangemaakt waarin een combobox staat met de verschillende product categorieën en er verschijnt na selectie een lijst met producten.
Achter elk product kan de gebruiker een aantal invullen en achter elk product staat ook een 'bestel' knop. D.m.v. de bestelknoppen komt alles waar een ander getal dan 0 is ingevoerd, in je winkelwagen. Dus het is eigenlijk hetzelfde als bovenaan de lijst 1 bestelknop maken die de hele lijst stuurt naar de winkelwagen (dit is echter niet wat ik wil).

Het probleem is nu dat de VB loop niet goed werkt. Als ik bijvoorbeeld in 'n categorie maar twee producten heb zitten, dan werkt de 2e bestelknop niet. Ook op andere momenten geeft de foutmelding aan (als ik op de 4e knop bijvoorbeeld druk) dat ik op de 6e heb gedrukt. Dit is voor mij erg vaag.

de betreffende foutmelding:

http://www.pumpkinhf.nl/foutmelding.jpg


De code:

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
        <% Call recordset.MoveFirst ()
            While Not recordset.EOF %>
            <tr>
                <td>
                <% foto = recordset("foto") %>
                [img]"<%[/img]"></td>
                <td><b>&nbsp;&euro;&nbsp;<%= formatnumber(recordset("Prijs"),2) %></b></td>
                <td onclick="window.open('popup.asp?Naam=<%=recordset ("Naam")%>','Omschrijving','width=480,height=265');" OnMouseOver="this.style.cursor='hand'"><b>


                <input type="hidden" name="<% response.Write("Naam" & iteller) %>" value="<%=recordset ("Naam") %>">
                <input type="hidden" name="<% response.Write("omschrijving" & iteller) %>" value="<%=recordset ("Omschrijving") %>">
                <input type="hidden" name="<% response.Write("artikelcode" & iteller) %>" value="<%=recordset ("Artikelcode") %>">
                <input type="hidden" name="<% response.Write("Prijs" & iteller) %>" value="<%=recordset ("Prijs") %>">
                <br><hr size="1"></td> 
                <td><div align="center">
                <input class="form" tabindex="<% response.write( 1 + iteller) %>" name="<% response.write("aantal" & iteller) %>" type="textbox" maxlength="3" size="1" value="0"></div></td>
                <td><input class="form" id="button" tabindex="<% response.write( 2 + iteller) %>" type="button" name="btnBestellen<% response.write(iteller) %>" value="Bestel" OnMouseOver="this.style.cursor='hand'"></td>
            </tr>


code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
<script language="VBScript">
<!--
Sub btnBestellen<% response.write(iteller) %>_OnClick()
    dim i
    dim ok
    dim foutnummer

    ok = true

    for i=0 to (<% response.Write(iteller) %>+<% response.Write(iteller) %>)
        if not IsNumeric(Eval("document.bestellen.aantal"&i&".value")) then
          if not ((Eval("document.bestellen.aantal"&i&".value"))="") then
              ok = false
             foutnummer = i
            end if
    End If
    next

    if not ok then
        MsgBox "Foutieve invoer bij artikel " & (foutnummer + 1),vbExclamation
        eval("document.all.aantal"&foutnummer&".focus")
    else
        document.bestellen.submit
    end if 
end sub
-->
</script>



De BRONcode zoals je het in IE ziet:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
            <tr>
                <td>
                
                [img]"images\BAK449.jpg"></td>
                <td><b>&nbsp;&euro;&nbsp;15,25</b></td>
                <td[/img]<b>
                
                Appelkanjer</b></a><br>
                Roomboterbladerdeeg met appel, a...
                                            
                <input type="hidden" name="Naam0" value="Appelkanjer">
                <input type="hidden" name="omschrijving0" value="">
                <input type="hidden" name="artikelcode0" value="BAK449">
                <input type="hidden" name="Prijs0" value="15,25">
                <br><hr size="1"></td> 
                <td>
                <div align="center">
                <input class="form" tabindex="1" name="aantal0" type="textbox" maxlength="3" size="1" value="0"></div></td>
                <td><input class="form" id="button" tabindex="2" type="button" name="btnBestellen0" value="Bestel" OnMouseOver="this.style.cursor='hand'"></td>
            </tr>
    
            <script language="VBScript">
            <!--
            Sub btnBestellen0_OnClick()
                dim i
                dim ok
                dim foutnummer
            
                ok = true
            
                for i=0 to (0+0)
                    if not IsNumeric(Eval("document.bestellen.aantal"&i&".value")) then
                      if not ((Eval("document.bestellen.aantal"&i&".value"))="") then
                          ok = false
                         foutnummer = i
                        end if
                End If
                next
            
                if not ok then
                    MsgBox "Foutieve invoer bij artikel " & (foutnummer + 1),vbExclamation
                    eval("document.all.aantal"&foutnummer&".focus")
                else
                    document.bestellen.submit
                end if 
            end sub
            -->
            </script>
            
            <tr>
                <td>
                
                [img]"images\GEB175.jpg"></td>
                <td><b>&nbsp;&euro;&nbsp;5,80</b></td>
                <td[/img]<b>
                
                Arnhemmertje</b></a><br>
                Progresschuim (taai gebakken haz...
                                            
                <input type="hidden" name="Naam1" value="Arnhemmertje">
                <input type="hidden" name="omschrijving1" value="">
                <input type="hidden" name="artikelcode1" value="GEB175">
                <input type="hidden" name="Prijs1" value="5,8">
                <br><hr size="1"></td> 
                <td>
                <div align="center">
                <input class="form" tabindex="2" name="aantal1" type="textbox" maxlength="3" size="1" value="0"></div></td>
                <td><input class="form" id="button" tabindex="3" type="button" name="btnBestellen1" value="Bestel" OnMouseOver="this.style.cursor='hand'"></td>
            </tr>
    
            <script language="VBScript">
            <!--
            Sub btnBestellen1_OnClick()
                dim i
                dim ok
                dim foutnummer
            
                ok = true
            
                for i=0 to (1+1)
                    if not IsNumeric(Eval("document.bestellen.aantal"&i&".value")) then
                      if not ((Eval("document.bestellen.aantal"&i&".value"))="") then
                          ok = false
                         foutnummer = i
                        end if
                End If
                next
            
                if not ok then
                    MsgBox "Foutieve invoer bij artikel " & (foutnummer + 1),vbExclamation
                    eval("document.all.aantal"&foutnummer&".focus")
                else
                    document.bestellen.submit
                end if 
            end sub
            -->
            </script>


Er zit iig iets duidelijk fout in de 'bestellen.aantal x' loop.

Hopelijk is dit duidelijk genoeg om er iets mee te kunnen!

Alvast bedankt

Ps: -NMe- ik hoop dat het zo wel klopt :*)

  • NMe
  • Registratie: Februari 2004
  • Laatst online: 15-04 22:07

NMe

Quia Ego Sic Dico.

Ps: -NMe- ik hoop dat het zo wel klopt :*)
Heb je mijn sluitmessage wel gelezen dan? Ik zei dat je relevante code moest posten, waarbij je je ASP achterwege kon laten. We hoeven alleen de HTML te zien die je script uitpoept. ;)

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.


Verwijderd

Topicstarter
hehehe nagoed, dat staat er als 2e deel. Ik wist niet dat jullie daar al genoeg uit konden afleiden ;)

Verwijderd

Topicstarter
Iemand nog enig idee? :?

  • André
  • Registratie: Maart 2002
  • Laatst online: 06-05 11:13

André

Analytics dude

Mjah, feit is dat men clientside voor dit soort zaken altijd javascript gebruikt en geen vbscript. En aan de foutmelding te zien die je een aanroep naar een element dat niet bestaat. In javascript zou je het zo moeten doen:

code:
1
document.forms["formuliernaam"].elements["textveldnaam"].value;