如何像购物车一样更新项目列表?

时间:2015-01-20 06:01:05

标签: php codeigniter session

我有采购订单,我在会话中存储产品详细信息,即产品名称,数量,费率等。工作正常。但是当我编辑该采购订单时,我已经正确地存储了会话数据,但是当用户输入另一个产品时,它会覆盖第一个记录。表示仅显示新添加的记录。旧记录消失了。以下是我的购买订单表格添加到购物车按钮..

function index(){       

    $data= array('product_id'=>$this->input->post('product_id'),
        'quantity'=>$this->input->post('quantity'),
        'unit'=>$this->input->post('unit'),
        'unit_rate'=>$this->input->post('unit_rate'));


    //Get the cart

    $cart = $this->session->userdata('data');
    //Add data to this temporary variable
    $cart[] = $data;
    //Set back the data
    $this->session->set_userdata('data', $cart);
    $post_array['cart']=$this->session->userdata('data')
    ?>

    <tr>
        <th>Product  Name</th>
        <th>Quantity</th>
        <th>Unit</th>
        <th>Unit Rate</th>
        <th>Action</th>
    </tr>
    <?php
    $i=0;
    foreach($post_array['cart'] as $item){

        $query = $this->db->query("SELECT name FROM phppos_items WHERE 
 item_id='".$item['product_id']."'");
        foreach($query->result() as $row){
            $product_name=$row->name;

        }
        echo "<tr>";
        echo "<td>".$product_name."</td>";
        echo "<td>".$item['quantity']."</td>";
        echo "<td>".$item['unit']."</td>";
        echo "<td>".$item['unit_rate']."</td>";
        echo "<td><a href='javascript:void(0)' rownum='".$i."' 
    class='remove_from_cart'><img src='images/close.png'/></a></td>";
        echo "</tr>";
        $i++;
    }
    ?>

    <?php
 }

我正在使用旧的会话数据数组。

 $this->session->userdata('sess_products');

我想知道如何使用新数据更新该会话数组? 我在编辑时也是这样称呼。

3 个答案:

答案 0 :(得分:1)

嘿,它与添加会话数据以进行更新的方式相同。

  

$ this-&gt; session-&gt; set_userdata(&#39; some_name&#39;,&#39; some_value&#39;);

Click this Link

答案 1 :(得分:0)

为什么不使用CODEIGNITER INBUILT SHOPPING LIB。

Check Link

答案 2 :(得分:0)

使用分隔符连接多个东西

$item=$this->session->userdata('item');
$item=$update."+"."New item";
$price=$this->session->userdata('price');
$price=$price."+"."New price"; //add as much as u want(but you can store only 4kb in CI session. so restrict add multiple things in cart)
$this->session->set_userdata('item',$item);
$this->session->set_userdata('price',$price);

这可能会对你有所帮助