thinkphp_JQuery_ajax修改session内容
[问题]:如何通过axjax调用控制器中的功能实现上图button按钮的对数量的修改?
在显示购物车信息的页面中<button >-</button> <{$vo.m}> <button>+</button> 这句是通过foreach遍历出来的,这两个button按钮怎么写,如果给button按钮加上id的话,每次遍历出来的都是一样的id,再去点击按钮的时候就不起作用了。请讲解应该如何写,谢谢。
对应控制器代码如下:
<?php
namespace Home\Controller;
use Think\Controller;
class BuycarController extends CommonController{
public function index(){
//$_SESSION = array();
if(!empty($_SESSION['shoplist'])){
$result = $_SESSION['shoplist'];
$this->assign('result',$result);
}
$this->display();
}
public function modm(){
//………………
if($num<2){
$num = 2;
}
$num--;
$_SESSION['shoplist'][$id]['m'] = $num;
echo $num;
}
public function modp(){
//………………
$num++;
$_SESSION['shoplist'][$id]['m'] = $num;
echo $num;
}
}
显示模板页面如下:
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8" />
<title>购物车首页</title>
<load file="__HOMEJS__/jquery-1.8.3.js" />
</head>
<body>
<table border="1" width="800" align="center">
<tr>
<th align="center">商品</th>
<th align="center">单价</th>
<th align="center">数量</th>
<th align="center">公司</th>
<th align="center">小计</th>
<th align="center">操作</th>
</tr>
<foreach name="result" item="vo">
<tr>
<td align="center"><img src='<{$vo.picname}>' /></td>
<td align="center">¥<{$vo.price}></td>
<td align="center"><button >-</button> <{$vo.m}> <button>+</button></td>
<td align="center"><{$vo.company}></td>
<td align="center">¥<{$vo['price']*$vo['m']}></td>
<td>
<a href="__CONTROLLER__/delgood/id/<{$vo.id}>">删除</a>
</td>
</tr>
</foreach>
</table>
<!-- 模拟商品添加 -->
<a href="__CONTROLLER__/addcar/id/5">添加商品</a>
<br/>
<a href="__CONTROLLER__/addcar/id/2">添加商品</a>
<br/>
<a href="__CONTROLLER__/clearcar">清空购物车</a>
</body>
</html>
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
这种需求用angularjs等双向绑定的框架比较合适
用jquery的话 需要foreach的时候 手动绑定每个button的事件
http://stackoverflow.com/questions/12074255/jquery-binding-event-to-an-element-in-a-loop
http://www.foliotek.com/devblog/keep-variable-state-between-event-binding-and-execution/
你给每个btn 的id拼接商品ID不就可以了?或者你用class绑定点击事件,里面用this选中当前点击的