【发布时间】:2017-02-24 01:57:32
【问题描述】:
我正在进行电子商务练习 - 将商品添加到购物车,然后将其移除。 items/cart 是存储在会话中并在 Controller 函数中操作的项目 ID 和数量值 - 除了产品 ID 之外,没有从数据库中提取任何内容。添加到购物车或更新有效,但删除无效。
据我所知,添加或删除函数很简单——一个应该增加一个值,另一个应该减少。代码如下。有什么想法吗?
从购物篮中删除:
public function remove_from_basket($item_id)
{
// remove an item from a cart
$quantity = $this->session->userdata($item_id);
$quantity -= $this->session->post('qty');
$this->session->set_userdata($item_id, $quantity);
redirect('/eCommerceItems/eCommerce_basket');
}
Called from
<?php
$total=0;
foreach ($items as $item)
{
$temp = $item['price'] * $this->session->userdata($item['id']);
$total += $temp;
if ($this->session->userdata($item['id']) > 0)
{
echo "<div class='item'>
<div class='description'>
<p>Name: {$item['name']}</p>
<p>Price: {$item['price']}</p>
<p>Quantity: {$this->session->userdata($item['id'])}</p>
<form action '/eCommerceItems/remove_from_basket/{$item['id']}' method='post'>
<select name='qty'>";
for($i=1;$i <= $this->session->userdata($item['id']);$i++)
{
echo "<option>{$i}</option>";
}
echo "</select>
<input type='submit' value='Remove'>
</form>
</div>
</div>";
}
}
加入购物篮
public function add_to_basket($item_id)
{
//Add an item to a cart
$quantity = $this->session->userdata($item_id);
$quantity += $this->input->post('qty');
$this->session->set_userdata($item_id, $quantity);
redirect('/eCommerceItems');
}
调用自:
<?php
foreach($items as $item)
{
echo "<div class='item'>
<div class='description'>
<p>Name: {$item['name']}</p>
<p>Description: {$item['description']}</p>
<p>Price: \${$item['price']}</p>
<p>Quantity Available: {$item['quantity']}</p>
<p>Item ID is: {$item['id']}</p>
<form action='/eCommerceItems/add_to_basket/{$item['id']}' method='post'>
<select name='qty'>
<option>1</option>
<option>2</option>
<option>3</option>
<option>4</option>
<option>5</option>
</select>
<input type='submit' value='Add to basket'>
</form>
</div>
</div>";
}
?>
【问题讨论】:
-
感谢所有建议 - 这似乎是生成的 HTML 按钮在 Opera 中未正确激活的问题,而不是 PHP 代码的问题。我没有根本原因(可能是空格或格式),但是从头开始重写 html 段修复了按钮操作。
标签: php codeigniter