首页 > thinkphp_JQuery_ajax修改session内容

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>

这种需求用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选中当前点击的

【热门文章】
【热门文章】