Gå til innhold

modde et ferdigscript


Anbefalte innlegg

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

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 konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...