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

批量数量更新的写法:

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

 

<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?>元
&nbsp;<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

你可能感兴趣的:(session,function,input,action,button,Zend)