webForumDet fria alternativet

Dynamiskt orderformulär ?

5 svar · 387 visningar · startad av Pellefant

PellefantMedlem sedan maj 20023 372 inlägg
#1

Hej!

Jag försöker köra denna: http://builder.cnet.com/webbuilding/pages/Programming/VBScript/ss02b.html

Men får error, detta: "Inkompatibla typer:shipcost" line 9

(Inget pris ges)

Tacksam för hjälp.

<HTML>
<HEAD>
<SCRIPT language="vbscript">
  option explicit
  Dim prices(1)
  Dim shipcost(1) 

  prices(0) = 10.50
  prices(1) = 15.75
  shipcost(0) = 10.00
  shipcost(1) = 5.00 

  Function calcit()
    Dim Lineval
    Dim oFrm
    Set oFrm = document.order
    If oFrm.quantity.value = 0 Then
    exit function
  Else
    Lineval = prices(Cint(oFrm.ProductSize.value)) * _
      cint(oFrm.quantity.value)
        shipcost(Cint(oFrm.shipping.value))
    End if
  End Function
</SCRIPT>
</HEAD>
<BODY> 

<H3>Order form</H3>
<TABLE>
<FORM name="order">
<CENTER>
<TR>
  <TD>Choose size</TD>
  <TD>
    <SELECT name="ProductSize" onBlur="calcit()">
      <OPTION value="0">Small</OPTION>
      <OPTION value="1">Large</OPTION>
    </SELECT>
  </TD>
</TR><TR>
  <TD>Enter quantity</TD>
  <TD><INPUT type="text" name="quantity" onBlur="calcit()" value=0></TD>
</TR><TR>
<TD>Choose shipping</TD>
  <TD>
    <SELECT name="shipping" onBlur="calcit()">
      <OPTION value="0">Next day</OPTION>
      <OPTION value="1">Three days</OPTION>
    </SELECT>
  </TD>
</TR><TR>
<TD>Order value</TD>
<TD><INPUT type="text" name="totval"></TD>
</TR>
</FORM>
</TABLE>
</BODY>
</HTML>
JojoxxMedlem sedan juni 20004 308 inlägg
#2

Flyttar tråden till VBscript.

VideMedlem sedan dec. 19998 577 inlägg
#3

Det är klart att om du inte anger något värde för shipping så kommer det inte att fungera.

Gör en kontroll av värdet innan du försöker använda det, t.ex:

if not ( oFrm.shipping.value = "" ) then
'gör uträkningen
else
'felmeddelande till klienten
end if

Mvh, Vide

PellefantMedlem sedan maj 20023 372 inlägg
#4

Sorry för felpostningen. Detta exempel ar nog lite för svårt för mig att börja med. Tack för hjälpen.

@ndersMedlem sedan juni 200032 969 inlägg
#5

Vide skrev:

Det är klart att om du inte anger något värde för shipping så kommer det inte att fungera.

Stämmer. Men, i detta fall är shipping en <select>, som ser ut att alltid ha ett värde, så i min enfald tycker jag att det ska fungera, men det gör det ju tydligen inte.

Men jag har å andra sidan aldrig använt VBScript på klienten.

Mvh

solbulleMedlem sedan mars 20015 287 inlägg
#6

Det saknas väl kod där?

oFrm.totval.value = Lineval + shipcost(Cint(oFrm.shipping.value))
129 ms totalt · 3 externa anrop · v20260731065814-full.7de19299
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
127 ms — hämta tråd, inlägg och bilagor (db)