cart클래스2 > 퍼블리셔팁

퍼블리셔팁

퍼블리싱과 관련된 유용한 정보를 공유하세요.
질문은 상단의 QA에서 해주시기 바랍니다.

cart클래스2 정보

HTML cart클래스2

본문

<?
    // shopping basket class
    // Writer : Minseok Choi(*** 개인정보보호를 위한 이메일주소 노출방지 ***)
    // Date : 2001-06-11
    //
    // save items to buy in sessions

    class item {
        var $code;                    // code
        var $name;                    // name
        var $quantity;                // quantity
        var $price;                    // price per item

        function item($code, $name, $quantity, $price) {
            $this->code = $code;
            $this->name = $name;
            $this->quantity = $quantity;
            $this->price = $price;
        }
    }

    /**
    * shopping basket class
    */
    class basket {

        /**
        * constructor
        */
        function basket() {
            $this->sessionStart();
        }

        /**
        * start session
        */
        function sessionStart() {
            global $session_basket;

            session_register("session_basket");

            $session_basket = Array();
        }

        /**
        * destory session
        */
        function sessionEnd() {
            session_unset();
            session_destroy();
        }

        function basketSize() {
            global $session_basket;

            // make session if not found
            if ($session_basket == "") {
                $this->sessionStart();
            }

            if (! is_array($session_basket)) {
                return 0;
            }

            reset($session_basket);

            while(list($k, $v) = each($session_basket)) {
                $i++;
                echo $k . "==>" . $v . "<br>";

                while(list($key, $value) = each($session_basket[$k])) {
                    echo "&nbsp;&nbsp;&nbsp;" . $key . "==>" . $value . "<br>";
                }
            }

            return $i;
        }

        /**
        * register item in session
        *    if same code exist in session, modify it.
        */
        function registerItem($code, $name, $quantity, $price) {
            global $session_basket;

            // make session if not found
            if ($session_basket == "") {
                $this->sessionStart();
            }

            // same code exist??
            if (! $this->editItem($code, $name, $quantity, $price)) {
                $item = new item($code, $name, $quantity, $price);
                $session_basket[] = $item;
            }
        }

        /**
        * same code exist??
        * if exist, modify it.
        */
        function editItem($code, $name, $quantity, $price) {
            global $session_basket;

            // make session if not found
            if ($session_basket == "") {
                $this->sessionStart();
                return false;
            }

            reset($session_basket);
            while(list($k, $v) = each($session_basket)) {
                if ($session_basket[$k]->code == $code) {
                    // Found same code
                    $session_basket[$k]->name == $name;
                    $session_basket[$k]->quantity = $quantity;
                    $session_basket[$k]->price = $price;

                    return true;
                }
            }

            return false;
        }

        /**
        * delete item
        */
        function deleteItem($code, $name) {
            global $session_basket;

            // make session if not found
            if ($session_basket == "") {
                $this->sessionStart();
            }

            reset($session_basket);
            while(list($k, $v) = each($session_basket)) {
                if ($session_basket[$k]->code == $code) {
                    unset($session_basket[$k]);
                    return true;
                }
            }
        }
    }

    // sample
    $basket = new basket();

    $basket->registerItem("asf000000", "implant", "1", "1000000");
    $basket->registerItem("abcd000001", "avana implant kits", "10", "15000");
    $basket->registerItem("asf000000", "implant", "5", "0");
    $basket->deleteItem("asf000000", "implant");
    $basket->deleteItem("abcd000001", "avana implant kits");
    $basket->registerItem("asf000000", "implant", "1", "1000000");
    $basket->registerItem("abcd000001", "avana implant kits", "10", "15000");
    $basket->deleteItem("asf000000", "implant");
    $basket->deleteItem("abcd000001", "avana implant kits");
    $basket->registerItem("asf000000", "implant", "1", "1000000");
    $basket->registerItem("abcd000001", "avana implant kits", "10", "15000");
    echo $basket->basketSize();

    // logout
    $basket->sessionEnd();
?><div class='small'>[이 게시물은 관리자님에 의해 2011-10-31 17:12:10 PHP & HTML에서 이동 됨]</div>
추천
0

댓글 0개

전체 1,264
퍼블리셔팁 내용 검색

회원로그인

(주)에스아이알소프트 / 대표:홍석명 / (06211) 서울특별시 강남구 역삼동 707-34 한신인터밸리24 서관 1402호 / E-Mail: admin@sir.kr
사업자등록번호: 217-81-36347 / 통신판매업신고번호:2014-서울강남-02098호 / 개인정보보호책임자:김민섭(minsup@sir.kr)
© SIRSOFT