您的位置:首页 > 编程语言 > PHP开发

韩顺平zend+framework 视频教程 笔记心得 第18讲+综合应用-购物车4

2012-07-31 17:25 645 查看
批量数量更新的写法:

如何能批量取得,请注意红色标记的写法。 不用中括号 就认为不是数组,只能接受一个参数,达不到批量更新的效果。

<html>

<head><title>我的购物车</title>

<script type="text/javascript">

function goMyCart(){

window.location.href="/shopping/showcart";

}

</script>

</head>

<body>

<h1>我的购物车</h1>

<form action="" method="post">

<table width="700px">

<tr>

<td>id</td>

<td>书名</td>

<td>价格</td>

<td>出版社</td>

<td>数量</td>

<td>是否删除</td>

</tr>

<?php foreach ($this->books as $book) {?>

<tr>

<td><?=$book['id']?></td>

<td><?=$book['name']?></td>

<td><?=$book['price']?></td>

<td><?=$book['publishHouse']?></td>

<input type="hidden" name='bookids[]' value=<?=$book['id']?> >

<td><input type='text' name='booknums[]' value='<?=$book['nums']?>'></td>


<td><a href='/shopping/delproduct?id=<?=$book['id']?>'>是否删除</a></td>

</tr>

<?php }?>

<tr>

<td colspan="6"><input type="submit" value="更新数量" />

购物车总价:<?=$this->total_price?>元

 <a href="/hall/gohallui">返回购物大厅</a>

</td>

</tr>

<tr>

<td><input type="button" onclick="goMyCart();" value="查看购物车"></td>

</tr>

<tr>

<td colspan="6">

<input type="button" onclick="" value="清空购物车">

<input type="button" onclick="confirmOrder();" value="生成订单">

</td>

</tr>

</table>

</form>

</body>

</html>

//响应update商品的请求

public function updatecartAction(){

$bookids=$this->getRequest()->getParam('bookids');

$booknums=$this->getRequest()->getParam('booknums');

$mycart=new MyCart();

session_start();

$userId=$_SESSION['loginuser']['id'];

for($i=0;$i<count($bookids);$i++)

{

$mycart->updateProduct($userId, $bookids[$i], $booknums[$i]);

}

/*for($i=0;$i<count($bookids);$i++)

{

echo $bookids[$i].'-----'.$booknums[$i].'<br/>';

}

exit();*/

//$arr=$this->getRequest()->getParams(); //用数组也可以获得

$this->view->info='商品从购物车中更新成功';

$this->view->gourl='/shopping/showcart';

$this->_forward('ok','global');

}

注意session失效引起的错误,呵呵~~~~~~~~~~~~~~~~~~~~~~~~

订单表为什么要分拆成两张表:

订单表的最佳设计方式,有效的避免了冗余,符合数据库设计第三范式。3NF

如果设计成一个订单表,会有一部分公用的信息,供货商,日期,结账方式,日期,公用信息主要记载订单表订单的一些相关信息,需要拆分这一部分表。

公用的信息做成订单表。

特别的信息做成订单细节表。

拆分为order表 和orderitem表(订单细节表)

Order

id userid 日期 送货方式 结账方式

Orderitem

id productid nums
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐