我有采购订单,我在会话中存储产品详细信息,即产品名称,数量,费率等。工作正常。但是当我编辑该采购订单时,我已经正确地存储了会话数据,但是当用户输入另一个产品时,它会覆盖第一个记录。表示仅显示新添加的记录。旧记录消失了。以下是我的购买订单表格添加到购物车按钮..
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');
我想知道如何使用新数据更新该会话数组? 我在编辑时也是这样称呼。
答案 0 :(得分:1)
嘿,它与添加会话数据以进行更新的方式相同。
$ this-&gt; session-&gt; set_userdata(&#39; some_name&#39;,&#39; some_value&#39;);
答案 1 :(得分:0)
为什么不使用CODEIGNITER INBUILT SHOPPING LIB。
答案 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);
这可能会对你有所帮助