Op deze website gebruiken we cookies om content en advertenties te personaliseren, om functies voor social media te bieden en om ons websiteverkeer te analyseren. Ook delen we informatie over uw gebruik van onze site met onze partners voor social media, adverteren en analyse. Deze partners kunnen deze gegevens combineren met andere informatie die u aan ze heeft verstrekt of die ze hebben verzameld op basis van uw gebruik van hun services. Meer informatie.

Akkoord

Vraag & Antwoord

Webprogrammeren & scripting

2 variabelen optellen in ASP

None
15 antwoorden
  • 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 ?
  • 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
  • Is het nou echt zo moeilijk ?.

    Hoe krijg ik de waarde C in A+B=C
    waarbij A=10 en B=20 dus C=30 en NIET AB
  • Variabelen declareren als ints lijkt mij…
  • <%a=int(sprijs)%> ?
  • Ik denk iets als:[code:1:7f1c5f3ea7]dim a as int[/code:1:7f1c5f3ea7]

    Maar dat doe ik op de gok hoor ;)
  • [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?
  • okee, ik ben er uit hoor, allemaal bedankt ! :D

    Op naar het volgende probleem 8)

    (ik heb al heel wat tutorials doorgespit, maar de problemen waar ik steeds tegenaan loop, staan daar juist weer NIET in vermeldt ) :wink:
  • Wat was het nou?

    - Bas
  • 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>
  • [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]
  • 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="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,
    " In ASP/VBScript, there is only one datatype, and that is variant.".
    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.
  • okee :)
  • 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.

Beantwoord deze vraag

Dit is een gearchiveerde pagina. Antwoorden is niet meer mogelijk.