JavaScript

SHOPPING CART

  1. Review the code in cart.html
  2. Review the form in jackson.html
  3. Use a hidden frame to access the code in cart.html from jackson.html
  4. Place order in shopping cart
  5. View order in shopping cart
  6. Incorporate the shopping cart code within jackson.html (instead of using a hidden frame)
  7. A description of the intended use of the printer is stored in the shopping cart
  8. The overall Subtotal, Discount, and Total will be displayed when the "view order" button is clicked

 

1. Review the code in cart.html

                               Start the browser

                               Enter this URL: http://locker.uky.edu/~dsianita/cart.html

                               Click View à Source

                               Save as d:\  cart.html

 

<HTML>

<SCRIPT LANGUAGE="JavaScript">

 

var numitem = 0;

var cart = new Object;

function additem(desc, price, itemcnt)

{

  this.desc = desc;

  this.price = price;

  this.itemcnt = itemcnt;

  this.display = prtitem;

  return this;

}

 

 

function delitem(itemcnt)

{

  delete cart[itemcnt];

  viewcart();

}

 

function addcart(desc, price)

{

  cart[numitem] = new additem(desc, price, numitem);

  numitem = numitem + 1;

  alert(desc + " has been added to your shopping cart.  Thank you!");

}

 

function prtitem(doc)

{

  with (doc)

  {

    write("<TR><TD>" + this.desc + "</TD>")

    write("<TD ALIGN=RIGHT>$" + this.price + "</TD>")

      write("<TD><A HREF='JavaScript:top.hidden.delitem(" + this.itemcnt

            + ")'>Remove Order</A></TD>")

    write("</TR>")

  }

}

 

 


function viewcart()

{

  var total = 0;

  var i = 0;

  with (top.main.document)

  {

    write();

    close();

    write("<HTML><TITLE>Shopping Cart</TITLE>");

    write("<BODY BGCOLOR=antiquewhite><CENTER>");

    write("<H2>Thank you for your order</H2>");

    write("<TABLE BORDER=1 CELLPADDING=3 CELLSPACING=1 WIDTH=500>");

    for (i in cart)

    {

      total = total + cart[i].price;

      if (cart[i].itemcnt != null);

      {

        cart[i].display(top.main.document);

      }

    }

    write("<TR><TD>Total = </TD><TD ALIGN=RIGHT>$" + total + "</TD>");

    write("<TD>&nbsp;</TD></TR></TABLE><BR>");

    write("</CENTER></BODY></HTML>");

  }

}

</SCRIPT>

</HTML>

 

2.  Review the form in jackson.html

                               Start the browser

                               Enter this URL: http://locker.uky.edu/~dsianita/jackson.html

                               Click View à Source

                               Save as d:\jackson.html


3.  Hidden frame

                               Start notepad

                               Create shopping.html:

<HTML>

<HEAD>

<TITLE>Shopping</TITLE>

</HEAD>

<FRAMESET ROWS="0,*">

<FRAME SRC="cart.html" NAME=hidden>

<FRAME SRC="jackson.html" NAME=main>

</FRAMESET>

</HTML>

 

4.  Place order

                               Open jackson.html in notepad

                               Add the following code within the <HEAD> and </HEAD> tags:

<SCRIPT LANGUAGE="JavaScript">

var price = new Array();

price[0]=1000;

price[1]=1500;

price[2]=1700;

price[3]=2000;

price[4]=2300;

price[5]=2500;

price[6]=2900;

price[7]=3000;

price[8]=3500;

 


function placeorder()

{

  var i = document.order.Product.selectedIndex;

  var item = document.order.Product.options[i].text;

  var itemprice = price[i];

  if (document.order.USE[3].checked)

  {

    itemprice = itemprice * 0.95;

    alert(item + " has been ordered at a cost of " + itemprice + " reflecting a 5% discount");

  }

  else

    alert(item + " has been ordered at a cost of " + itemprice);

  top.hidden.addcart(item, itemprice);

}

</SCRIPT>

 

                               Insert the onClick property in the <INPUT> tag of the "place order" button:

<INPUT TYPE=Button VALUE="Click to place order" onClick="placeorder()">

 

5.  View order

                               Insert the onClick property in the <INPUT> tag of the "view order" button:

<INPUT TYPE=Button VALUE="Click to view order" onClick="JavaScript:top.hidden.viewcart()">