Home > CMS Tutorial > Empire CMS > One trick to solve the problem of Imperial ECMS's method of adding AJAX to the shopping cart without refreshing

One trick to solve the problem of Imperial ECMS's method of adding AJAX to the shopping cart without refreshing

silencement
Release: 2019-11-28 14:33:07
forward
2324 people have browsed it

One trick to solve the problem of Imperial ECMS's method of adding AJAX to the shopping cart without refreshing

The main steps for Imperial ECMS to implement AJAX-free adding to the shopping cart are as follows:

1. Modify the mall content template and add the following code to the head:

The code is as follows:

<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=&#39;<?=$public_r[newsurl]?>&#39;;
</script>
Copy after login

2. Modify the mall content template and add the shopping cart part to the following code:

The code is as follows:

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

Recommended study " Empire cms tutorial

3. As for the jquery file, it is compatible with versions 1.3 and 1.4 and can be downloaded by yourself. The source code of the file addBuyCar.js is as follows:

The code is as follows:

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);
}
})
}
Copy after login

Fourth, add the handler e/template/ShopSys/addBuyCar.php, its source code is as follows:

The code is as follows:

<?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[&#39;classid&#39;];
$id=(int)$_POST[&#39;id&#39;];</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(&#39;msgid&#39;=>1,&#39;msg&#39;=>&#39;此商品不存在&#39;));
}
//验证产品是否存在
$num=$empire->gettotal("select count(*) as total from {$dbtbpre}ecms_".$class_r[$classid][tbname]." where 
classid=&#39;$classid&#39; and id=&#39;$id&#39; limit 1");
if(!$num)
{
return json_encode(array(&#39;msgid&#39;=>1,&#39;msg&#39;=>&#39;此商品不存在&#39;));
}
$record="!";
$field="|";
$productid=$classid.",".$id;
$buycar=getcvar(&#39;mybuycar&#39;);
//重复
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[&#39;buycarnum&#39;]==1)
{
$buycar=&#39;&#39;;
}
$buycar.="|".$productid."|1!";
}
$re=SetBuycar($buycar);
if($re)
{
return json_encode(array(&#39;msgid&#39;=>2,&#39;msg&#39;=>&#39;商品加入购物车成功&#39;));
}
}
echo json_AddBuycar($classid,$id);
db_close();
$empire=null;
?>
Copy after login

Now, the problem is solved!

The above is the detailed content of One trick to solve the problem of Imperial ECMS's method of adding AJAX to the shopping cart without refreshing. For more information, please follow other related articles on the PHP Chinese website!

Related labels:
source:www.word666.com
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template