• 技术文章 >CMS教程 >帝国CMS

    帝国ECMS怎么实现AJAX无刷新加入购物车

    angryTomangryTom2019-11-15 13:52:35原创1110

    帝国ECMS怎么实现AJAX无刷新加入购物车

    帝国ECMS实现AJAX无刷新加入购物车的方法主要步骤如下:

    一、修改商城内容模板,头部加入如下代码:

    <script type="text/javascript" src="[!--news.url--]skin/default/js/jquery.js"></script>
    <script type="text/javascript" src="[!--news.url--]skin/default/js/addBuyCar.js"></script>
    <script type="text/javascript">
        var newsurl='<?=$public_r[newsurl]?>';
    </script>

    二、修改商城内容模板,加入购物车部分修改成如下代码:

    <a href="#ecms" onclick="AddProduct([!--classid--],[!--id--]);">加入购物车</a>

    三、至于jquery文件,兼容1.3和1.4版本,自行下载。文件addBuyCar.js源代码如下:

    function AddProduct(classid, id) {
        $.ajax({
            type: "post",
            url: newsurl + "e/template/ShopSys/addBuyCar.php",
            data: "classid=" + classid + "&id=" + id,
            dataType: "json",
            success: function (json) {
                alert(json.msg);
            }
        })
    }

    四、加入处理程序e/template/ShopSys/addBuyCar.php,其源代码如下:

    <?php 
     require("../../class/connect.php");
     require("../../class/db_sql.php");
     require("../../data/dbcache/class.php");
     require("../../class/ShopSysFun.php");
     $link=db_connect();
     $empire=new mysqlquery();
    </p> <p>//$_POST $classid=(int)$_POST['classid'];
     $id=(int)$_POST['id'];
    </p> <p>//add function function json_AddBuycar($classid, $id) {
        global $class_r, $empire, $dbtbpre, $public_r;
        $classid=(int)$classid;
        $id=(int)$id;
        if(empty($classid)||empty($id)||empty($class_r[$classid][tbname])) {
            return json_encode(array('msgid'=>1, 'msg'=>'此商品不存在'));
        }
        //验证产品是否存在 $num=$empire->gettotal("select count(*) as total from {$dbtbpre}ecms_".$class_r[$classid][tbname]." where classid='$classid' and id='$id' limit 1");
        if(!$num) {
            return json_encode(array('msgid'=>1, 'msg'=>'此商品不存在'));
        }
        $record="!";
        $field="|";
        $productid=$classid.",".$id;
        $buycar=getcvar('mybuycar');
        //重复 if(strstr($buycar, "|".$productid."|")) {
            $pr=explode("|".$productid."|", $buycar);
            $pr1=explode("!", $pr[1]);
            $oldbuycar="|".$productid."|".$pr1[0]."!";
            //数量 $pr1[0]=ReturnBuycarProductNum($pr1[0]);
            if(empty($pr1[0])) {
                $pr1[0]=1;
            }
            $newnum=$pr1[0]+1;
            $newbuycar="|".$productid."|".$newnum."!";
            $buycar=str_replace($oldbuycar, $newbuycar, $buycar);
        }
        else {
            //只存放一个 if($public_r['buycarnum']==1) {
                $buycar='';
            }
            $buycar.="|".$productid."|1!";
        }
        $re=SetBuycar($buycar);
        if($re) {
            return json_encode(array('msgid'=>2, 'msg'=>'商品加入购物车成功'));
        }
    }
    echo json_AddBuycar($classid, $id);
     db_close();
     $empire=null;
     ?>

    至此,就完成了帝国ECMS AJAX无刷新加入购物车的功能了。

    推荐教程:帝国CMS教程

    以上就是帝国ECMS怎么实现AJAX无刷新加入购物车的详细内容,更多请关注php中文网其它相关文章!

    声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。
    上一篇:帝国cms怎么设置透明水印 下一篇:自己动手写 PHP MVC 框架(40节精讲/巨细/新人进阶必看)

    相关文章推荐

    • 使用Ajax、json实现京东购物车结算界面的数据交互实例(图文教程)• 关于php实现购物车的代码一• javascript如何实现购物车的功能(代码)• php购物车是怎么实现的
    1/1

    PHP中文网