plumbe Skrevet 4. mai 2005 Del Skrevet 4. mai 2005 har lasta ned dette scriptet 1.wfcart, som har alle funksjoner og liknende 2. demo.php, en demo for wfcart.php spørsmålet er som følger: demoen inneholder tre eksempel produkter. 1. a bar of soap. 2. cheese 3. Pizza. Jeg vil endre disse slik at jeg kan hente ut resultatene fra en database isteden, hvordan skal jeg gjøre dette? wfcart.php: class wfCart { var $total = 0; var $itemcount = 0; var $items = array(); var $itemprices = array(); var $itemqtys = array(); var $iteminfo = array(); function cart() {} // constructor function function get_contents() { // gets cart contents $items = array(); foreach($this->items as $tmp_item) { $item = FALSE; $item['id'] = $tmp_item; $item['qty'] = $this->itemqtys[$tmp_item]; $item['price'] = $this->itemprices[$tmp_item]; $item['info'] = $this->iteminfo[$tmp_item]; $item['subtotal'] = $item['qty'] * $item['price']; $items[] = $item; } return $items; } // end of get_contents function add_item($itemid,$qty=1,$price = FALSE, $info = FALSE) { // adds an item to cart if(!$price) { $price = wf_get_price($itemid,$qty); } if(!$info) { $info = wf_get_info($itemid); } if($this->itemqtys[$itemid] > 0) { // the item is already in the cart.. // so we'll just increase the quantity $this->itemqtys[$itemid] = $qty + $this->itemqtys[$itemid]; $this->_update_total(); } else { $this->items[]=$itemid; $this->itemqtys[$itemid] = $qty; $this->itemprices[$itemid] = $price; $this->iteminfo[$itemid] = $info; } $this->_update_total(); } // end of add_item function edit_item($itemid,$qty) { // changes an items quantity if($qty < 1) { $this->del_item($itemid); } else { $this->itemqtys[$itemid] = $qty; // uncomment this line if using // the wf_get_price function // $this->itemprices[$itemid] = wf_get_price($itemid,$qty); } $this->_update_total(); } // end of edit_item function del_item($itemid) { // removes an item from cart $ti = array(); $this->itemqtys[$itemid] = 0; foreach($this->items as $item) { if($item != $itemid) { $ti[] = $item; } } $this->items = $ti; $this->_update_total(); } //end of del_item function empty_cart() { // empties / resets the cart $this->total = 0; $this->itemcount = 0; $this->items = array(); $this->itemprices = array(); $this->itemqtys = array(); $this->itemdescs = array(); } // end of empty cart function _update_total() { // internal function to update the total in the cart $this->itemcount = 0; $this->total = 0; if(sizeof($this->items > 0)) { foreach($this->items as $item) { $this->total = $this->total + ($this->itemprices[$item] * $this->itemqtys[$item]); $this->itemcount++; } } } // end of update_total } ?> demo.php: <?php // wfCart Demo // You must included wfcart.php BEFORE you start the session. include "wfcart.php"; session_start(); // start the session $cart =& $_SESSION['wfcart']; // point $cart to session cart. if(!is_object($cart)) $cart = new wfCart(); // if $cart ( $_SESSION['cart'] ) isn't an object, make a new cart // end of header stuff ?> <html><head><title>wfCart Demo</title></head> <body><h3>wfCart Demo</h3> <? // Usually you would get your products from a database but we'll pretend.. $products = array(); $products[1] = array("id"=>1,"name"=>"A of Soap","price"=>2.00); $products[2] = array("id"=>2,"name"=>"cheese","price"=>3.00); $products[3] = array("id"=>3,"name"=>"Pizza","price"=>12.95); // check to see if any items are being added if($_POST['add']) { $product = $products[$_POST['id']]; $cart->add_item($product['id'],$_POST['qty'],$product['price'],$product['name']); } // spit some forms // You can have many different types of forms, such as many quantity boxes // and an "add to cart" button at the bottom which adds all items // but for the purposes of this demo we will handle one item at a time. echo "<table>"; foreach($products as $p) { echo "<tr><td><form method='post' action='demo.php'>"; echo "<input type='hidden' name='id' value='".$p['id']."'/>"; echo "".$p['name'].' $'.number_format($p['price'],2)." "; echo "<input type='text' name='qty' size='5' value='1'><input type='submit' value='Add to cart' name='add'>"; echo "</form></td></tr>"; } echo "</table>"; echo "<h2>Items in cart</h2>"; if($cart->itemcount > 0) { foreach($cart->get_contents() as $item) { echo "<br />Item:<br/>"; echo "Code/ID :".$item['id']."<br/>"; echo "Quantity:".$item['qty']."<br/>"; echo "Price :$".number_format($item['price'],2)."<br/>"; echo "Info :".$item['info']."<br />"; echo "Subtotal :$".number_format($item['subtotal'],2)."<br />"; } echo "---------------------<br>"; echo "total: $".number_format($cart->total,2); } else { echo "No items in cart"; } ?> Lenke til kommentar
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå