Jump to content

Shopping cart that uses xml or .txt


TheJoey

Recommended Posts

Having major issues getting this script to work

 

home.php

<?php 


require_once("ShoppingCart.php");

$mycart = new Cart("<items/>");

if (isset($_POST["cart"]))
    $mycart = new Cart($_POST["cart"]);

if (isset($_POST["itemId"])) {
    $id = $_POST["itemId"];
    if (isset($mycart->items[$id]))
        $mycart->items[$id] += $_POST["qty"];
    else
        $mycart->add_item($_POST["itemId"], $_POST["qty"]);

}

?>
<html>
<head>
<script language="JavaScript">

function addToCart(id) {
    document.thisForm.itemId.value = id;
    document.thisForm.submit();

}

</script>

</head>

<body>

<form name="thisForm" method="POST">

<ul>

<li>Something old <a href="#" onclick="addToCart(1)">Add To Cart</a> (<? if(isset($mycart->items["1"]))
print $mycart->items["1"]; ?>)</li>

<li>Something new <a href="#" onclick="addToCart(2)">Add To Cart</a> (<? if(isset($mycart->items["2"]))
print $mycart->items["2"]; ?>)</li>

<li>Something borrowed <a href="#" onclick="addToCart(3)">Add To Cart</a> (<? if(isset($mycart

->items["3"])) print $mycart->items["3"]; ?>)</li>

<li>Something blue <a href="#" onclick="addToCart(4)">Add To Cart</a> (<? if(isset($mycart->items["4"]))
print $mycart->items["4"]; ?>)</li>

</ul>

<input type="hidden" name="itemId">

<input type="hidden" name="qty" value="1">

<input type="hidden" name="cart" value="<?=$mycart->xml();?>">

</form>

</body>

</html>

 

ShoppingCart.php

<?php

class Cart {
    var $items;  // Items collection
    var $parser;
    var $cur_id;
    var $bIsID;
    var $bIsQty;


    function Cart($items_xml) {
        $this->bIsID = false;
        $this->bIsQty = false;
        $this->parser = xml_parser_create();
        xml_set_object(&$this->parser, &$this);
        xml_set_element_handler(&$this->parser, "tag_open", "tag_close");
        xml_set_character_data_handler(&$this->parser, "cdata");
        xml_parse(&$this->parser, $items_xml);
        unset($this->cur_item);
        unset($this->bIsID);
        unset($this->bIsQty);
    }


    function tag_open($pparser, $tag, $attrs) {
        if ($tag == "ID")
            $this->bIsID = true;
        if ($tag == "QTY")
            $this->bIsQty = true;
    }


    function tag_close($pparser, $tag) {
        if ($tag == "ID") $this->bIsID = false;
        if ($tag == "QTY") $this->bIsQty = false;
    }
    
    function cdata($pparser, $data) {
        if ($this->bIsID) $this->cur_id = $data;
        if ($this->bIsQty) $this->items[$this->cur_id] = $data;
    }


    function add_item($id, $qty) {
        $this->items[$id] = $qty;
    }


    function update_qty($id, $qty) {
        $this->add_item($id, $qty);
    }


    function remove_item($id) {
        unset($this->items[$id]);
    }
    
    function xml() {
        $s = "<items>";
        foreach($this->items as $key => $value) {
            $s .= "<item><id>" . $key . "</id><qty>" . $value . "</qty></item>";
        }
        $s .= "</items>";
        return $s;
    }

}
?>

 

    * Something old Add To Cart (items["1"])) print $mycart->items["1"]; ?>)

    * Something new Add To Cart (items["2"])) print $mycart->items["2"]; ?>)

    * Something borrowed Add To Cart (items["3"])) print $mycart->items["3"]; ?>)

    * Something blue Add To Cart (items["4"])) print $mycart->items["4"]; ?>)

 

im getting that when i try to run it.

Link to comment
Share on other sites

Yeh my provider are rubbish but ive got it now..

Thanks for the idea dj kat but ive already used some xml in my website already

ive baised the website around using .txt files.

im currently getting this website

And thanks for the quick reply's guys

Parse error: syntax error, unexpected ',', expecting T_PAAMAYIM_NEKUDOTAYIM in C:\xampplite\htdocs\Shopping Cart xml\ShoppingCart.php on line 17

 

For this code

        xml_set_character_data_handler(&$this->parser, array(&this, "cdata"));

Link to comment
Share on other sites

Ignore the above post i was missing the $

  * Something old Add To Cart (items["1"])) print $mycart->items["1"]; ?>)

    * Something new Add To Cart (items["2"])) print $mycart->items["2"]; ?>)

    * Something borrowed Add To Cart (items["3"])) print $mycart->items["3"]; ?>)

    * Something blue Add To Cart (items["4"])) print $mycart->items["4"]; ?>)

 

I think this is what is meant to be display but when i try clicking on the links i get nothing

<?php

class Cart {
    var $items;  // Items collection
    var $parser;
    var $cur_id;
    var $bIsID;
    var $bIsQty;


    function Cart($items_xml) {
        $this->bIsID = false;
        $this->bIsQty = false;
        $this->parser = xml_parser_create();
        xml_set_object(&$this->parser, &$this);
        xml_set_element_handler(&$this->parser, array(&$this, "tag_open"), array(&$this, "tag_close"));
        xml_set_character_data_handler(&$this->parser, array(&$this, "cdata"));
        xml_parse(&$this->parser, $items_xml);
        unset($this->cur_item);
        unset($this->bIsID);
        unset($this->bIsQty);
    }


    function tag_open($pparser, $tag, $attrs) {
        if ($tag == "ID")
            $this->bIsID = true;
        if ($tag == "QTY")
            $this->bIsQty = true;
    }


    function tag_close($pparser, $tag) {
        if ($tag == "ID") $this->bIsID = false;
        if ($tag == "QTY") $this->bIsQty = false;
    }
    
    function cdata($pparser, $data) {
        if ($this->bIsID) $this->cur_id = $data;
        if ($this->bIsQty) $this->items[$this->cur_id] = $data;
    }


    function add_item($id, $qty) {
        $this->items[$id] = $qty;
    }


    function update_qty($id, $qty) {
        $this->add_item($id, $qty);
    }


    function remove_item($id) {
        unset($this->items[$id]);
    }
    
    function xml() {
        $s = "<items>";
        foreach($this->items as $key => $value) {
            $s .= "<item><id>" . $key . "</id><qty>" . $value . "</qty></item>";
        }
        $s .= "</items>";
        return $s;
    }

}
?>

 

<?php 


require_once("ShoppingCart.php");

$mycart = new Cart("<items/>");

if (isset($_POST["cart"]))
    $mycart = new Cart($_POST["cart"]);

if (isset($_POST["itemId"])) {
    $id = $_POST["itemId"];
    if (isset($mycart->items[$id]))
        $mycart->items[$id] += $_POST["qty"];
    else
        $mycart->add_item($_POST["itemId"], $_POST["qty"]);

}

?>
<html>
<head>
<script language="JavaScript">

function addToCart(id) {
    document.thisForm.itemId.value = id;
    document.thisForm.submit();

}

</script>

</head>

<body>

<form name="thisForm" method="POST">

<ul>

<li>Something old <a href="#" onclick="addToCart(1)">Add To Cart</a> (<? if(isset($mycart->items["1"]))
print $mycart->items["1"]; ?>)</li>

<li>Something new <a href="#" onclick="addToCart(2)">Add To Cart</a> (<? if(isset($mycart->items["2"]))
print $mycart->items["2"]; ?>)</li>

<li>Something borrowed <a href="#" onclick="addToCart(3)">Add To Cart</a> (<? if(isset($mycart

->items["3"])) print $mycart->items["3"]; ?>)</li>

<li>Something blue <a href="#" onclick="addToCart(4)">Add To Cart</a> (<? if(isset($mycart->items["4"]))
print $mycart->items["4"]; ?>)</li>

</ul>

<input type="hidden" name="itemId">

<input type="hidden" name="qty" value="1">

<input type="hidden" name="cart" value="<?=$mycart->xml();?>">

</form>

</body>

</html>

Home.php

im still getting this error after fixing it

Link to comment
Share on other sites

* Something old Add To Cart (items["1"])) print $mycart->items["1"]; ?>)

    * Something new Add To Cart (items["2"])) print $mycart->items["2"]; ?>)

    * Something borrowed Add To Cart (items["3"])) print $mycart->items["3"]; ?>)

    * Something blue Add To Cart (items["4"])) print $mycart->items["4"]; ?>)

 

that is showing up when i run the code

Where "Add to cart" is a link

but it doesnt do anything.

 

<?php

class Cart {
    var $items;  // Items collection
    var $parser;
    var $cur_id;
    var $bIsID;
    var $bIsQty;


    function Cart($items_xml) {
        $this->bIsID = false;
        $this->bIsQty = false;
        $this->parser = xml_parser_create();
        xml_set_object(&$this->parser, &$this);
        xml_set_element_handler(&$this->parser, array(&$this, "tag_open"), array(&$this, "tag_close"));
        xml_set_character_data_handler(&$this->parser, array(&$this, "cdata"));
        xml_parse(&$this->parser, &$items_xml);
        unset($this->cur_item);
        unset($this->bIsID);
        unset($this->bIsQty);
    }


    function tag_open($pparser, $tag, $attrs) {
        if ($tag == "ID")
            $this->bIsID = true;
        if ($tag == "QTY")
            $this->bIsQty = true;
    }


    function tag_close($pparser, $tag) {
        if ($tag == "ID") $this->bIsID = false;
        if ($tag == "QTY") $this->bIsQty = false;
    }
    
    function cdata($pparser, $data) {
        if ($this->bIsID) $this->cur_id = $data;
        if ($this->bIsQty) $this->items[$this->cur_id] = $data;
    }


    function add_item($id, $qty) {
        $this->items[$id] = $qty;
    }


    function update_qty($id, $qty) {
        $this->add_item($id, $qty);
    }


    function remove_item($id) {
        unset($this->items[$id]);
    }
    
    function xml() {
        $s = "<items>";
        foreach($this->items as $key => $value) {
            $s .= "<item><id>" . $key . "</id><qty>" . $value . "</qty></item>";
        }
        $s .= "</items>";
        return $s;
    }

}
?>

Shoppingcart.php

<?php 


require_once("ShoppingCart.php");

$mycart = new Cart("<items/>");

if (isset($_POST["cart"]))
    $mycart = new Cart($_POST["cart"]);

if (isset($_POST["itemId"])) {
    $id = $_POST["itemId"];
    if (isset($mycart->items[$id]))
        $mycart->items[$id] += $_POST["qty"];
    else
        $mycart->add_item($_POST["itemId"], $_POST["qty"]);

}
?>
<html>
<head>
<script language="JavaScript">

function addToCart(id) {
    document.thisForm.itemId.value = id;
    document.thisForm.submit();

}

</script>

</head>

<body>

<form name="thisForm" method="POST">

<ul>

<li>Something old <a href="#" onclick="addToCart(1)">Add To Cart</a> (<? if(isset($mycart->items["1"]))
print $mycart->items["1"]; ?>)</li>

<li>Something new <a href="#" onclick="addToCart(2)">Add To Cart</a> (<? if(isset($mycart->items["2"]))
print $mycart->items["2"]; ?>)</li>

<li>Something borrowed <a href="#" onclick="addToCart(3)">Add To Cart</a> (<? if(isset($mycart->items["3"])) 
print $mycart->items["3"]; ?>)</li>

<li>Something blue <a href="#" onclick="addToCart(4)">Add To Cart</a> (<? if(isset($mycart->items["4"]))
print $mycart->items["4"]; ?>)</li>

</ul>

<input type="hidden" name="itemId">

<input type="text" name="qty" value="1">

<input type="hidden" name="cart" value="<?=$mycart->xml();?>">

</form>

</body>

</html>

home.php

Link to comment
Share on other sites

This thread is more than a year old. Please don't revive it unless you have something important to add.

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.