Ga naar inhoud

2 variabelen optellen in ASP


Aanbevolen berichten

Ik heb de ballen verstand van ASP, maar het lijkt erop dat je strings aan elkaar plakt ipv getallen (in dit geval integers). De benaming van de variabelen doet dit ook vermoeden. Misschien verkeerde declaratie van de variabelen, in dat geval moet je het type even casten. Anders is het een verkeerde operator, dus kijk even wat het geval is. - Bas
Link naar reactie
[quote:2b88ccf51b="Rumaro"]ik wil 2 waarden die in variabelen zitten bij elkaar optellen: stotaal = stotaal + sprijs waarbij prijs = 10, 20, 30 ipv stotaal=60 krijg ik 102030 wat gaat hier fout ?[/quote:2b88ccf51b] Je hebt het over [i:2b88ccf51b]sprijs[/i:2b88ccf51b] en [i:2b88ccf51b]prijs[/i:2b88ccf51b] :-? 10, 20, 30? Is sprijs een array dan ofzo :-? Hoe heb je de variabelen gedeclareerd? Meer info zo zeker niet mistaan... Gezien de overige reacties, denk ik dat stotaal als string is gedefinieerd en gebruik je een loop om het e.e.a. op te tellen?
Link naar reactie
stotaal = stotaal + int(sprijs) en h4xX0r: prijs had sprijs moeten zijn. Bill Gates heeft me de goede weg op geholpen :) er wordt door jullie gesproken over het declareren van variabelen, maar dat hoeft toch niet persé in ASP ?. Ik heb het in ieder geval nergens gedaan. (behalve bovenstaand geval dan) voor degenen die nou graag willen weten hoe het precies zit: evt. aanvullende tips zijn nog steeds welkom :) <html> <body gcolor="#CCFFCC" background="marmeroranje.jpg"> <br> <center><b><font color="blue">U heeft de volgende producten besteld:</font></b></center><br><br> <% Dim iArtikelNummer Dim sArtikel Dim teller %> <center> <table border=1><tr><td> <% teller=0 For iArtikelNummer = 1 To 21 sArtikel = Request.QueryString("a" & iArtikelNummer) sprijs = Session("b" & iArtikelNummer) If sArtikel <> "" Then Response.Write sArtikel Response.Write "& keer artikelnr. " Response.Write iArtikelNummer Response.Write " <font color=red> " Response.Write " á " Response.Write " </font> " Response.Write " <font color=blue> " Response.Write sprijs Response.Write " </font> " Response.Write " Euro = "%> <font color=blue> <%geefweer=sprijs * sArtikel Response.Write (sprijs * sArtikel)%> </font> <% Response.Write " Euro." Response.Write "</td><td>" teller=teller+1 stotaal = stotaal + int(geefweer) stringtotaal= stringtotaal & sArtikel &" keer artikelnr. " & iArtikelNummer &"<br>" End If if teller = 3 then Response.Write "</td></tr><tr><td>" teller = 0 end if Next %> </td><tr/></table></center><br><center> <font color=green> Totaalprijs:</font> <font size=3 color=red><b><%=stotaal%></b></font> euro</center> <%Response.Write stringtotaal%> </body> </html>
Link naar reactie
[quote:5961f3f133="Rumaro"]stotaal = stotaal + int(sprijs) en h4xX0r: prijs had sprijs moeten zijn. Bill Gates heeft me de goede weg op geholpen :) er wordt door jullie gesproken over het declareren van variabelen, maar dat hoeft toch niet persé in ASP ?. [/quote:5961f3f133] :roll: [quote:5961f3f133="Rumaro"] Ik heb het in ieder geval nergens gedaan. (behalve bovenstaand geval dan) [/quote:5961f3f133] Met zo'n declaratie, kun je het net ze goed weg laten. [quote:5961f3f133="Rumaro"] voor degenen die nou graag willen weten hoe het precies zit: evt. aanvullende tips zijn nog steeds welkom :) <html> <body gcolor="#CCFFCC" background="marmeroranje.jpg"> <br> <center><b><font color="blue">U heeft de volgende producten besteld:</font></b></center><br><br> <% Dim iArtikelNummer Dim sArtikel Dim teller %> <center> <table border=1><tr><td> <% teller=0 For iArtikelNummer = 1 To 21 sArtikel = Request.QueryString("a" & iArtikelNummer) sprijs = Session("b" & iArtikelNummer) If sArtikel <> "" Then Response.Write sArtikel Response.Write "& keer artikelnr. " Response.Write iArtikelNummer Response.Write " <font color=red> " Response.Write " á " Response.Write " </font> " Response.Write " <font color=blue> " Response.Write sprijs Response.Write " </font> " Response.Write " Euro = "%> <font color=blue> <%geefweer=sprijs * sArtikel Response.Write (sprijs * sArtikel)%> </font> <% Response.Write " Euro." Response.Write "</td><td>" teller=teller+1 stotaal = stotaal + int(geefweer) stringtotaal= stringtotaal & sArtikel &" keer artikelnr. " & iArtikelNummer &"<br>" End If if teller = 3 then Response.Write "</td></tr><tr><td>" teller = 0 end if Next %> </td><tr/></table></center><br><center> <font color=green> Totaalprijs:</font> <font size=3 color=red><b><%=stotaal%></b></font> euro</center> <%Response.Write stringtotaal%> </body> </html>[/quote:5961f3f133] [code:1:5961f3f133] <html> <body gcolor="#CCFFCC" background="marmeroranje.jpg"> <br> <center><b><font color="blue">U heeft de volgende producten besteld:</font></b></center><br><br> <% Dim iArtikelNummer As Long Dim iArtikel As Long Dim sPrijs as Long ' of Double ? Dim teller As Long Dim GeefWeer As Long ' of Double ? Dim iTotaal As Long Dim StringTotaal As String %> <center> <table border=1><tr><td> <% teller=0 iTotaal = 0 StringTotaal = "" For iArtikelNummer = 1 To 21 iArtikel = Request.QueryString("a" & iArtikelNummer) sprijs = Session("b" & iArtikelNummer) If (iArtikel <> "") Then Response.Write Cstr(iArtikel) & " keer artikelnr. " & Cstr(iArtikelNummer) Response.Write " <font color=red> á </font> " Response.Write " <font color=blue>" & Cstr(sprijs) & "</font> " Response.Write " Euro = " GeefWeer = sprijs * iArtikel Response.Write "<font color=blue>" & (Cstr(GeefWeer)) & "</font>" Response.Write " Euro." Response.Write "</td><td>" teller=teller+1 itotaal = itotaal + GeefWeer stringtotaal= stringtotaal & Cstr(iArtikel) & " keer artikelnr. " & _ iArtikelNummer &"<br>" End If if (teller = 3) then Response.Write "</td></tr><tr><td>" teller = 0 end if Next iArtikelNummer %> </td><tr/></table></center><br><center> <font color=green> Totaalprijs:</font> <font size=3 color=red><b><% Response.Write(Cstr(itotaal) %></b></font> euro</center> <% Response.Write stringtotaal %> </body> </html> [/code:1:5961f3f133]
Link naar reactie
[quote:1beea801fa="Rumaro"]hmmm, :( :( :( heb de code letterlijk overgenomen, maar nu krijg ik: Soort fout: Compilatiefout Microsoft VBScript (0x800A0401) Einde van de instructie wordt verwacht /bestel2.asp, line 7, column 19 Dim iArtikelNummer as Long -----------------------^[/quote:1beea801fa] hmm, [url=http://www.codefixer.com/tutorials/variable.asp]" In ASP/VBScript, there is only one datatype, and that is variant."[/url]. Lekker handig, not! Haal ze dan maar weer weg. Overigens, heb ik de code niet geverifieerd. Dus kan zijn dat je zelf nog het e.e.a. moet aanpassen. Ik was uitgegaan van de VB-syntax en blijkbaar zitten er toch wat verschillen in.
Link naar reactie
  • 2 maanden later...
Variabelen in vbScript binnen ASP zijn altijd van het type variant. Dus het declareren van het type heeft geen zin (geeft zelfs een foutmelding). Overigens is het altijd aan te raden om de declaratie van variabelen te forceren aan het begin van iedere ASP pagina. Dit voorkomt een hoop gezoek naar fout getypte variabelennamen in het script. Het forceren doe je met: [code:1:04c2b496a8]<%@ LANGUAGE="VBSCRIPT" %> <% Option Explicit %> <!--#include virtual="/scripts/myaspfile.asp"--> <% 'Now do your ASP stuff... %> [/code:1:04c2b496a8] Hiermee wordt je gedwongen iedere variabele te declareren [code:1:04c2b496a8] Dim strMijnString Dim intMijnIteger Dim lngMijnLong Dim arrMijnArray Dim blnMijnBoolean [/code:1:04c2b496a8] Ondanks het feit dat alle variabelen van het type variant zijn in vbScript is het aan te raden toch de egbruikelijke benamingsconventies te gebruiken omdat je jouw script dan beter kan debuggen. Overigens wordt er bij het declareren van variabelen op voorhand geheugen gedeclareerd vanuit vbScript waardoor de scripts sneller werken dan wanneer je geen variabelen declareert. Een heel verhaal maar het motto is: Gebruik option explicit en decalreer alle variabelen zie ook http://www.4guysfromrolla.com/webtech/faq/Intermediate/faq6.shtml voor meer info.[/code]
Link naar reactie

Om een reactie te plaatsen, moet je eerst inloggen

Gast
Reageer op dit topic

×   Geplakt als verrijkte tekst.   Herstel opmaak

  Er zijn maximaal 75 emoji toegestaan.

×   Je link werd automatisch ingevoegd.   Tonen als normale link

×   Je vorige inhoud werd hersteld.   Leeg de tekstverwerker

×   Je kunt afbeeldingen niet direct plakken. Upload of voeg afbeeldingen vanaf een URL in

  • Populaire leden

    Er is nog niemand die deze week reputatie heeft ontvangen.

  • Leden

    Geen leden om te tonen

×
×
  • Nieuwe aanmaken...