U trendu

VBScript – Kreiranje dimaničnih formi

Jedna od glavnih koristi programiranja na strani klijenta (kao što je i VBScript programiranje) je mogućnost na činite izmene web stranica bez potrebe za ponovnim zahtevom serveru i kreiranjem nove stranice. Ovakvu prednost možete naročito iskoristiti za kreiranje dinamičnih formi za naručivanje proizvoda, kod prodaje putem Interneta. U sledećem primeru, korisnik (posetilac) bira određeni tip proizvoda, i potom unosi podatak o količini željenog proizvoda, a zatim vrši i izbor načina isporuke. Pri svakom koraku, uz pomoć VBScript-a, vrši se rekalkulacija ukupnog računa.
Skript je vrlo jednostavan, pa ćemo ga iskomentarisati od početka. Prvo što treba da uradimo je da kreiramo dva niza, prvi će sadržati cene proizvoda, a drugi će sadržati cene isporučivanja:

 cene(0) = 10.50
cene(1) = 15.75
isporuka(0) = 10.00
isporuka(1) = 5.00

Za izbor proizvoda tj. selekciju određenog člana niza, iskoristićemo SELECT kontrolu sa vrednostima „0“ i „1“:

  <SELECT name="Proizvodi" 
onBlur="kalkulacija()">
<OPTION value="0">Dinje</OPTION>
<OPTION value="1">Lubenice</OPTION>
</SELECT>

Sledeći deo koda predstavlja najbitniji deo, a to je funkcija koja vrši kalkulaciju. Nakon definisanja dve lokalne varijable, objekat forme (document.narudzba) dodelićemo varijabli „nFrm“. Ovim ćemo smanjiti potrebu za dodatnim kodiranjem i povećaćemo performanse skripta. Potom ćemo izvršiti proveru toga, da li je posetilac uopšte uneo podataka o količini – u slučaju da nije, nema svrhe dalje procesiranje:

 If oFrm.kolicina.value = 0 Then
exit function

U slučaju da posetilac unese količinu, onda možete izvoditi cenu i troškove isporuke, i izkalkulisati ukupnu cenu narudžbe:

 ukupno = cene(Cint(oFrm.Proizvodi.value)) * Cint(oFrm.kolicina.value)

i potom, prikažete cenu u text-box-u:

 oFrm.total.value = ukupno

Na kraju evo kako bi izgledala cela web stranica za narudžbe:

<HTML>
<HEAD>
<SCRIPT language="VBScript">
option explicit
Dim cene(1)
Dim isporuka(1)

cene(0) = 10.50
cene(1) = 15.75
isporuka(0) = 10.00
isporuka(1) = 5.00

Function kalkulacija()
Dim ukupno
Dim oFrm
Set oFrm = document.narudzba
If oFrm.kolicina.value = 0 Then
exit function
Else
ukupno = cene(Cint(oFrm.Proizvod.value)) * Cint(oFrm.kolicina.value)
ukupno = ukupno + isporuka(Cint(oFrm.isporucivanje.value))
oFrm.total.value = ukupno
End if
End Function
</SCRIPT>
</HEAD>
<BODY>

<H3>Narudzba</H3>
<TABLE>
<FORM name="narudzba">
<CENTER>
<TR>
<TD>Izaberi proizvod</TD>
<TD>
<SELECT name="Proizvod"
onBlur="kalkulacija()">
<OPTION value="0">Dinje</OPTION>
<OPTION value="1">Lubenice</OPTION>
</SELECT>
</TD>
</TR><TR>
<TD>Unesi kolicinu</TD>
<TD><INPUT type="text" name="kolicina" onBlur="kalkulacija()" value=0
</TD>
</TR><TR>
<TD>Nacin isporuke</TD>
<TD>
<SELECT name="isporucivanje"
onBlur="kalkulacija()">
<OPTION value="0">Kamion</OPTION>
<OPTION value="1">Avion</OPTION>
</SELECT>
</TD>
</TR><TR>
<TD>Ukupna cena</TD>
<TD><INPUT type="text" name="total"></TD>
</TR>
</FORM>
</TABLE>
</BODY>
</HTML>

Pratite Krstaricu i preko mobilne aplikacije za Android i iPhone.