商城项目:商品列表ajax加载,ajax加入购物车--五张表的联合查询

时间:2023-03-09 14:38:45
商城项目:商品列表ajax加载,ajax加入购物车--五张表的联合查询
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="ProductLists.aspx.cs" Inherits="Hidistro.UI.Web.Vshop.ProductLists" %>

<!DOCTYPE html>

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0, viewport-fit=cover" />
<meta name="apple-mobile-web-app-capable" content="yes" />
<meta name="apple-mobile-web-app-status-bar-style" content="black" />
<meta name="format-detection" content="telephone=no" />
<title>商品列表</title>
<link href="../ziyuan/css/css.css" rel="stylesheet" /> <script src="../ziyuan/js/jquery-2.2.4.min.js"></script>
<script src="../ziyuan/js/jquery.SuperSlide.2.1.1.js"></script>
<script src="../ziyuan/js/main.js"></script>
<script src="../Utility/common.js"></script>
</head>
<body>
<header><a href="JavaScript:History.back(-1);" class="b-back" style="display:none"></a><a href="#" class="b-share"></a><a href="#" class="b-heart"></a></header>
<section>
<div class="b-top">
<div class="b-logo">
<img src="/ziyuan/images/b-logo.png"></div> <div class="b-name"><span id="sp1">
<asp:Label ID="Label1" runat="server" Text="Label"></asp:Label>
</span></div>
<div class="b-star border-r">
<span><em></em></span><span><em></em></span><span><em></em></span><span><em></em></span><span></span><i>
<%=storeScore%> </i>
</div>
<div class="b-bas border-r">60分钟送达</div>
<div class="b-bas">基础运费6元</div>
<br />
<div class="b-score">
<em></em>
<span><%=firstraceScore%>%</span>
</div>
</div>
<div class="b-news" style="display:none">
<div class="txtScroll-top">
<div class="hd">
<a class="next"></a>
<ul>
</ul>
<a class="prev"></a><span class="pageState"></span>
</div>
<div class="bd" >
<ul class="infoList">
<li><a href="#">店庆大优惠,回馈新老客户 限时满100-20,先到先得!</a></li>
<li><a href="#">店庆大优惠,回馈新老客户 限时满100-20,先到先得!店庆大优惠,回馈新老客户 限时满100-20,先到先得!</a></li>
</ul>
</div>
</div>
<script id="jsID" type="text/javascript">
jQuery(".txtScroll-top").slide({ titCell: ".hd ul", mainCell: ".bd ul", autoPage: true, effect: "topLoop", autoPlay: true, delayTime: 1000, interTime: 4000 });
</script> </div>
<div class="b-search border-b2">
<input id="search1" type="text" placeholder="搜索店内商品"/> </div>
<%-- <div class="b-search border-b2">
<input type="text" name="keyWord" id="" value="" placeholder="请输入商品关键字"/>
<button id="search1" type="button" value="" ></button>
</div>--%>
<%-- <script type="text/javascript">function searchs(v) { var url = "ProductList?keyWord=" + v; window.location.href = url; }</script>
<form onsubmit="searchs(escape(($(this).find(':text').eq(0).val()))); return false;">
<div class="members_con">
<section class="members_search">
<input type="text" name="keyWord" id="" value="" placeholder="请输入商品关键字">
<button type="button" value="" onclick="searchs(escape($($(this).prev()).val()))"></button>
</section>
</div>
</form>--%>
<div class="b-tab border-b2">
<ul class="clearfix">
<li class="active border-r2"><a href="#">商品</a></li>
<li><a id="aa1">评价</a></li>
</ul>
</div>
<div class="wx_wrap">
<div class="main">
<input type="hidden" id="token" name="weiphp" value="" />
<div class="yScroll1">
<ul class="category1" id="categoryli1">
<%--<li class="cur">干果</li>
<li class="">水果 </li>
<li class="">蔬菜</li>
<li class="">日用品</li>
<li class="">家庭用品</li>
</ul>--%>
<asp:Repeater ID="Repeater1" runat="server">
<ItemTemplate>
<li class="" id="<%# Eval("CategoryId")%>"><%# Eval("Name")%></li>
</ItemTemplate>
</asp:Repeater>
</ul>
</div>
<div class="yScroll2Title"></div>
<div class="yScroll2 js-yScroll2"> <div class="yScroll2Div" style="padding: 0 0 50px 0;"> <dl class="category2"> <div class="book1" id="goods_list">
<dd> <div class="book1Content js-book1Content1 js-book1ContentBtn" id="ulMsgs"> <%-- <asp:Repeater ID="Repeater2" runat="server">
<ItemTemplate>
<div class="ddd" >
<div class="book1ConLoop1 border-b2" >
<div class="contfl1"><img src="/ziyuan/images/b-img1.png"><div class="img_bg"></div></div>
<div class="contCent1 contCent2">
<p class="sketch" id="<%# Eval("ProductId")%>">
<%# Eval("ProductName")%> </p>
<p class="text">评价 213条 | 已售 231</p>
<p class="price">¥<span class="js-unitCost"> <%# Eval("SalePrice")%></span> <s>/斤</s></p>
<p class="scor">首溯评分<i>4.3</i></p>
</div>
<div class="contfr2 js-contfr2">
<div class="btn js-disabled" style=""></div>
<div class="ChangeNum js-disabled" style="display: none;">
<div class="text"><span class="number">1</span></div>
<div class="plusMinus js-plusMinus">
<div class="plus"></div>
<div class="minus"></div>
</div>
</div>
</div>
</div>
</div>
</ItemTemplate>
</asp:Repeater>--%>
</div> </dd>
</div>
</dl>
</div>
</div>
<div class="book1Footer js-book1Footer" id="dddd1">
<ul class="bookFoot">
<li class="shop" id="shop1"><span class="no-shop">购物车是空的</span><span style="display: none;" class="has-price">¥<i class="js-num">0.00</i></span></li>
<li class="shop_btn no-shop"><a href="javascript:void(0);">10元起送</a> </li>
<li class="shop_btn to-set" style="display: none;"><a href="javascript:void(0);" onclick="window.location.href = 'shoppingCart.aspx';">去结算</a> </li>
</ul>
</div>
<div class="foot_gwc">
<li class="shop_car"><a href="javascript:void(0);" id="location_url"><span><i>0</i></span></a> </li>
<p class="gwc_empty" style="display: none;">购物车空空~~</p>
<div class="gwc-cz border-b2" style="display: none;">
<dl class="clearfix">
<dt>购物车已选中<i class="goodsNum">0</i>件</dt>
<dd onclick="delGwcFun()"><em></em>清空购物车</dd>
</dl>
</div>
<div class="gwc-text border-b2" style="display: none;">首单满10元起送,第二单起满20元起送</div>
<div class="gwc_list" style="display: none;"></div>
</div>
</div>
<div class="bgdiv" style="display: none;"></div>
<!--end-->
<!--提交表单-->
<form id="form" method="post" action="">
<input type="hidden" name="from" value="book">
<input type="hidden" name="nums" value="">
<input type="hidden" name="gids" value="">
<input type="hidden" name="skus" value="">
<input type="hidden" name="note" value="">
</form>
<!--提交表单结束-->
</div>

js:

 <script type="text/javascript">
$(document).ready(function () { //点击评价跳转
$("#aa1").on("click", function () {
var url = window.location.href;
var arrUrl = url.split("?"); var para = arrUrl[1];
var u = para.split("&");
var uu = u[0];
//alert(uu);
location.href = '/Vshop/StoreShopDetail?' + uu;
}); //点击店名跳转
$("#sp1").on("click", function () {
var url = window.location.href;
var arrUrl = url.split("?"); var para = arrUrl[1];
var u = para.split("&");
var uu = u[0];
//alert(uu);
location.href = '/Vshop/StoreShopDetail?' + uu;
}); //左侧边栏被点击ajax加载
$("ul#categoryli1").on("click", "li", function () { var u = getParam('storeId');
//window.location.href=para+"&categoryId="+id;
// var msg = $("#txtMsg").val();
var id = $(this).closest("li").attr("id");
$.ajax({
type: "post", url: "/API/SotreAJAX.ashx", data: { categoryId: id, action: 'post', storeId: u },
success: function (data) {
//$("#ulMsgs").val("");
$('#ulMsgs').html('');
for (var i = 0; i < data.length; i++) {
var msg = data[i]; $("#ulMsgs").append($("<div class=\"book1ConLoop1 border-b2\"><div class=\"contfl1\"><img src=\"" + msg.ThumbnailUrl180 + "\"id=\"" + msg.ProductId + "\" onclick=\"myFunction(this)\"><div class=\"img_bg\"></div></div><div class=\"contCent1 contCent2\"><p class=\"sketch\" id=\"" + msg.ProductId + "\" onclick=\"myFunction(this)\">" + msg.ProductName + "</p><p class=\"text\">评价 " + msg.Comment + "条 | 已售 " + msg.Sale + "</p><p class=\"price\">¥<span class=\"js-unitCost\">" + msg.SalePrice + "</span> <s>/" + msg.Unit + "</s></p><p class=\"scor\">首溯评分<i>4.3</i></p></div><div class=\"contfr2 js-contfr2\"><div name=\"spAdd\" class=\"btn js-disabled\" skuid=\"" + msg.SkuId + "\" style=\"\"></div><div class=\"ChangeNum js-disabled\" style=\"display: none;\"> <div class=\"text\"><span id=\"buyNum1\" class=\"number\">1</span></div><div class=\"plusMinus js-plusMinus\"><div name=\"spAdd\" class=\"plus\" skuid=\"" + msg.SkuId + "\"></div><div name=\"spSub\" class=\"minus\" skuid=\"" + msg.SkuId + "\"></div></div></div></div></div>"));
}
},
error: function () { alert("请求错误"); }
}); }); // category2下的图片高度与宽度相等 start
function category2ImgH() {
//var category2ImgW = $('.category2 dd img').width();
//$('.category2 dd img').css('height',category2ImgW);
}
//category2ImgH();
// category2下的图片高度与宽度相等 end $(window).resize(function () {
//category2ImgH();
fnAuto();
fnyScroll1H();
});
function fnAuto() {
var yScroll1W = $(".yScroll1").outerWidth();
var yScroll2W = $(window).width() - yScroll1W;
$(".yScroll2").css({/*'width':yScroll2W,'min-width':'225px'*/ }); // 获取窗口右侧内容的宽度
}
fnAuto();
var typeid = $('.yScroll1 li').attr('id');
var token = $('#token').attr('name'); //左侧分类导航切换 start
$(".yScroll1 li:eq(0)").addClass('cur');
$('.yScroll2Title').text($(".yScroll1 li:eq(0)").text());
$(".yScroll1").delegate('li', 'click', function (event) {
if (!$(this).hasClass('cur')) {
$(this).addClass('cur').siblings('li').removeClass('cur');
$('.yScroll2 div.index3Div').eq($(this).index()).show().siblings('div.index3Div').hide();
var liClickTop = $(this).index() * $(this).outerHeight();
$('.yScroll2').scrollTop(0);
$('.yScroll1').animate({ 'scrollTop': liClickTop - 1 }, 200);
$('.yScroll2Title').text($(this).text());
}
}); // 左侧分类导航切换 end // 判断左侧分类导航在可视区域的高度 start
function fnyScroll1H() {
var spxqHeadPhoneH = $('.spxqHeadPhone').outerHeight();
var zunhao_headH = $('.zunhao_head').outerHeight();
var topGuangGaoH = $('.js-topGuangGao').outerHeight();
var book1FooterH = $('.js-book1Footer').outerHeight();
var yScroll121H = $(window).height() - spxqHeadPhoneH - zunhao_headH - topGuangGaoH - book1FooterH;
var yScroll122H = $(window).height() - zunhao_headH;
if ($(".spxqHeadPhone").css('display') == 'block') {
$(".wx_wrap").css({ 'height': yScroll121H });
$(".yScroll1").css({ 'height': yScroll121H });
$(".yScroll2").css({ 'height': yScroll121H });
} else {
$(".wx_wrap").css({ 'height': yScroll122H });
$(".yScroll1").css({ 'height': yScroll122H });
$(".yScroll2").css({ 'height': yScroll122H });
};
}
fnyScroll1H();
// 判断左侧分类导航在可视区域的高度 end //结算
$('.gwc_empty').hide();
$('.gwc_list').hide();
$('#location_url').click(function () {
window.location.href = 'shoppingCart.aspx';
//if ($('.bgdiv').is(':visible')) {
// $('.bgdiv').hide();
// $('.foot_gwc').animate({ 'bottom': '0' }, 200, function () {
// $('.gwc_list').hide();
// $('.gwc_empty').hide();
// $('.gwc-cz').hide();
// $('.gwc-text').hide();
// });
// $('.shop_car').css('margin-top', '0');
//} else {
// $('.bgdiv').show();
// $('.foot_gwc').animate({ 'bottom': '240px' }, 200);
// $('.shop_car').css('margin-top', '-3.5rem');
// $('.gwc-cz').show();
// $('.gwc-text').show();
// $('.goodsNum').text($('#location_url span i').text()); // if ($(this).find('i').html() == '0') {
// $('.gwc_empty').show();
// $('.gwc_list').hide();
// }
// else {
// $('.gwc_empty').hide();
// $('.gwc_list').show();
// }
//}
})
$('.bgdiv').click(function () {
$(this).hide();
$('.foot_gwc').animate({ 'bottom': '0' }, 200, function () {
$('.gwc_list').hide();
$('.gwc_empty').hide();
$('.shop_car').css('margin-top', '0');
$('.gwc-cz').hide();
$('.gwc-text').hide(); });
}) // 判断是否有被选中的商品 start
function fnFindChecked() {
var checkedDisabledNum = $('.checked.js-disabled').length;
if ($('.js-book1Content1').find('.checked').length) {
$('.book1Footer .reserve').addClass('active');
// $('.book1Footer .reserve span i').show().text(checkedDisabledNum);
} else {
$('.book1Footer .reserve').removeClass('active');
$('.book1Footer .reserve span i').hide();
};
}
fnFindChecked();
// 判断是否有被选中的商品 end // 点击选中商品 start
$('.js-yScroll2').delegate('.js-contfr1 .select', 'click', function () {
alert("bb");
var gid = $(this).attr('gid');
var sku = $(this).attr('sku');
var number = 1;
var shop_car = parseInt($('.shop_car span i').text());
var price = parseFloat($(this).parent().siblings('.contCent1').children('.price').children('.js-unitCost').text());
var summoney = parseFloat($('.book1Footer .shop .js-num').html());
$(this).toggleClass('checked');
var info = $(this).hasClass("checked");
if (info) {
editNote(sku, gid, 1); var newmoney = summoney + price;
$('.shop_car span i').show().html(shop_car + 1);
$('.book1Footer .shop .js-num').html(newmoney.toFixed(2));
fnFreightSum();
}
else {
editNote(sku, gid, -1); var newmoney = summoney - price;
$('.shop_car span i').show().html(shop_car - 1);
$('.book1Footer .shop .js-num').html(newmoney.toFixed(2));
var ems = $('.book1Footer .shop .js-num').text();
if (ems == 0) {
$('.book1Footer .shop .js-freight').text(0);
}
fnFreightSum();
} fnFindChecked();
});
// 点击选中商品 end // 点击显示加减商品数量 start
$('.js-yScroll2').delegate('.js-contfr2 .btn', 'click', function () {
//alert("bb");
var gid = $(this).siblings('.ChangeNum').attr('gid');
var sku = $(this).siblings('.ChangeNum').attr('sku');
var number = $(this).siblings('.ChangeNum').children('.text').children('.number').html();
var shop_car = parseInt($('.shop_car span i').text());
var price = parseFloat($(this).parent().siblings('.contCent2').children('.price').children('.js-unitCost').text());
var summoney = parseFloat($('.book1Footer .shop .js-num').html());
var clicknum = $(this); editNote(sku, gid, 1); var newmoney = summoney + price;
$('.shop_car span i').show().html(shop_car + 1);
$('.book1Footer .shop .js-num').html(newmoney.toFixed(2));
clicknum.hide().siblings('.ChangeNum').show().addClass('checked');
fnFreightSum();
fnFindChecked();
$('.shop_car').addClass('active');
$('.shop .no-shop').hide();
$('.shop .has-price').show();
$('.shop_btn.no-shop').hide();
$('.shop_btn.to-set').show(); });
// 点击显示加减商品数量 end //编辑note记录商品信息
function editNote(sku, gid, number) {
var oldNote = $('input[name=note]').val();
if (oldNote == '') {
$('input[name=note]').val('[{sku:"' + sku + '",gid:' + gid + ',number:' + number + '}]');
}
else {
var obj = eval("(" + oldNote + ")");
//搜索是否有这个sku
var flag = 0;
for (var arr in obj) {
if (obj[arr]['sku'] == sku) {
obj[arr]['number'] = parseInt(number) + parseInt(obj[arr]['number']);
if (obj[arr]['number'] <= 0) {
obj.splice(arr, 1);
}
flag = 1;
}
}
if (flag == 1) {
var str = JSON.stringify(obj);
$('input[name=note]').val(str);
}
else {
obj.push({ sku: sku, gid: gid, number: number });
var str = JSON.stringify(obj);
$('input[name=note]').val(str);
}
}
} // 增加商品数量 start
$('.js-yScroll2').delegate('.plus', 'click', function () {
var textNum = parseInt($(this).parent().siblings('.text').children('span').text());
//$(this).parent().siblings('.text').children('span').text(textNum + 1);
var thisnum = $(this);
var gid = $(this).parents('.ChangeNum').attr('gid');
var sku = $(this).parents('.ChangeNum').attr('sku');
var number = $(this).parent().siblings('.text').children('span').html();
var price = parseFloat($(this).parents().siblings('.contCent2').children('.price').children('.js-unitCost').text());
//var shop_car = parseInt($('.shop_car span i').text());
var summoney = parseFloat($('.book1Footer .shop .js-num').text()); editNote(sku, gid, 1); thisnum.parent().siblings('.text').children('span').text(textNum + 1);
var number1 = thisnum.parent().siblings('.text').children('span').html();
var newmoney = summoney + price;
$('.book1Footer .shop .js-num').html(newmoney.toFixed(2));
fnFreightSum();
});
// 增加商品数量 end // 减少商品数量 start
$('.js-yScroll2').delegate('.minus', 'click', function () {
var textNum = parseInt($(this).parent().siblings('.text').children('span').text());
$(this).parent().siblings('.text').children('span').text(textNum - 1);
var gid = $(this).parents('.ChangeNum').attr('gid');
var sku = $(this).parents('.ChangeNum').attr('sku');
var number = $(this).parent().siblings('.text').children('span').html();
var shop_car = parseInt($('.shop_car span i').text());
var price = parseFloat($(this).parents().siblings('.contCent2').children('.price').children('.js-unitCost').text());
var summoney = parseFloat($('.book1Footer .shop .js-num').text()); editNote(sku, gid, -1); var newmoney = summoney - price;
$('.book1Footer .shop .js-num').html(newmoney.toFixed(2));
var ems = $('.book1Footer .shop .js-num').text();
if (ems == 0) {
$('.book1Footer .shop .js-freight').text(0);
}
fnFreightSum();
if (textNum - 1 <= 0) {
$('.shop_car span i').show().html(shop_car - 1);
$(this).parent().parent('.ChangeNum').hide().removeClass('checked').siblings('.btn').show();
$(this).parent().siblings('.text').children('span').text(1);
fnFindChecked();
};
if ($('.has-price .js-num').text() == '0.00') {
$('.shop_car').removeClass('active');
$('.shop .no-shop').show();
$('.shop .has-price').hide();
$('.shop_btn.no-shop').show();
$('.shop_btn.to-set').hide(); }
});
// 减少商品数量 end //初始化商品信息
function initGoods() {
var initGoods = [];
if (initGoods != '') {
var str = JSON.stringify(initGoods);
$('input[name=note]').val(str);
}
}
initGoods(); // 每选一次商品 都会重新获取一次被选中的预定商品总数 start
$('.js-book1Content1').delegate('.js-disabled', 'click', function () {
// alert("sel");
var checkedDisabledNum = $('.checked.js-disabled').length;
if (!checkedDisabledNum) {
$('.book1Footer .reserve span i').hide();
} else {
//$('.book1Footer .reserve span i').show().text(checkedDisabledNum);
};
fnFreightSum();
}); // 判断运费金额 start
function fnFreightSum() {
var jsNumText = $('.book1Footer .shop .js-num').text();
//alert(jsNumText);
if (jsNumText < 10 && jsNumText != 0 && jsNumText != 0.01) {
$('.book1Footer .shop .js-freight').text(3);
} else {
$('.book1Footer .shop .js-freight').text(0);
};
}
fnFreightSum();
var num = 0;
$('.btn.js-disabled').bind('click', function () {
num++;
var book1ConLoop1 = $(this).parents('.book1ConLoop1');
book1ConLoop1.attr('id', 'goods' + num);
var sketch = book1ConLoop1.find('.sketch');
var jsUnitCost = book1ConLoop1.find('.js-unitCost');
var goodsId = book1ConLoop1.attr('id');
$('.gwc_list').append('<div class="g_li" id="' + goodsId + '"><div class="g_title"><span class="l_t">' + sketch.html() + '</span><span class="pl5" style="display:none;">¥</span><span class="l_p" style="display:none;">' + jsUnitCost.html() + '</span></div><div class="g_btn"> <span class="minus"></span> <span class="number">1</span><span class="plus"></span></div></div>');
var g_l = $('.gwc_list .g_li').length;
for (var i = 0; i < g_l - 1; i++) {
$('.gwc_list .g_li').eq(i).css('border-bottom', '1px #dcdcdc solid');
}
})
$('.plusMinus.js-plusMinus .plus').bind('click', function () {
var book1ConLoop1 = $(this).parents('.book1ConLoop1');
var goodsId = book1ConLoop1.attr('id');
var text = book1ConLoop1.find('.text');
$('.no-shop').hide();
$('.has-price').show();
$('.shop_car').addClass('active');
$('.shop_btn.no-shop').hide();
$('.shop_btn.to-set').show();
$('.gwc_list .g_li').each(function () {
if ($(this).attr('id') == goodsId) {
var thisNum = parseInt($(this).find('.number').html());
thisNum++;
$(this).find('.number').html(thisNum);
} if ($(this).is(':last')) {
$(this).css('border-bottom', 'none')
}
})
}) $('.plusMinus.js-plusMinus .minus').bind('click', function () {
var book1ConLoop1 = $(this).parents('.book1ConLoop1');
var goodsId = book1ConLoop1.attr('id');
var text = book1ConLoop1.find('.text');
$('.gwc_list .g_li').each(function () {
if ($(this).attr('id') == goodsId) {
var thisNum = parseInt($(this).find('.number').html());
thisNum--;
if (thisNum == 0) {
$(this).remove();
} else {
$(this).find('.number').html(thisNum);
}
}
})
}) $(document).on('click', '.g_btn .plus', function () {
var gNum = parseInt($(this).siblings('.number').text());
gNum++;
$(this).siblings('.number').text(gNum);
var dPrice = parseFloat($(this).parents('.g_li').find('.l_p').text())
var sNum = parseFloat($('.shop .js-num').text());
$('.shop .js-num').text((sNum + dPrice).toFixed(2));
if (sNum + dPrice >= 15) {
$('.js-freight').text(0);
} var gId = $(this).parents('.g_li').attr('id');
$('.book1ConLoop1').each(function () {
if ($(this).attr('id') == gId) {
var t_num = parseInt($(this).find('.number').text());
t_num++;
$(this).find('.number').text(t_num); } }) }) $(document).on('click', '.g_btn .minus', function () {
var gNum = parseInt($(this).siblings('.number').text());
gNum--;
if (gNum == 0) {
$(this).parents('.g_li').remove();
var l_length = parseInt($('#location_url span i').text());
l_length--;
if (l_length == 0) { $('.gwc_empty').show();
$('.shop .js-freight').html('0');
}
$('#location_url span i').text(l_length); }
else { $(this).siblings('.number').text(gNum);
} var dPrice = parseFloat($(this).parents('.g_li').find('.l_p').text())
var sNum = parseFloat($('.shop .js-num').text());
$('.shop .js-num').text((sNum - dPrice).toFixed(2));
if (sNum - dPrice < 15) {
$('.js-freight').text(3);
}
if ($('#location_url').text() == 0) {
$('.js-freight').text(0); }
var gId = $(this).parents('.g_li').attr('id');
$('.book1ConLoop1').each(function () {
if ($(this).attr('id') == gId) {
var t_num = parseInt($(this).find('.number').text());
t_num--; if (t_num == 0) {
$(this).find('.ChangeNum.js-disabled.checked').hide();
$(this).find('.btn.js-disabled').show();
$(this).find('.number').text(1);
}
else {
$(this).find('.number').text(t_num);
}
} }) if ($('.has-price .js-num').text() == '0.00') {
$('.shop_car').removeClass('active');
$('.shop .no-shop').show();
$('.shop .has-price').hide();
$('.shop_btn.no-shop').show();
$('.shop_btn.to-set').hide();
$('.shop_car').css('margin-top', '0');
$('.foot_gwc').animate({ 'bottom': '0' }, 200, function () {
$('.gwc_list').hide();
$('.gwc_empty').hide();
});
$('.bgdiv').hide();
$('.gwc-cz').hide();
$('.gwc-text').hide();
} $('.goodsNum').text($('#location_url span i').text()); }) }); function myFunction(obj) {
window.location.href = "/Wapshop/ProductDetails?ProductId=" + obj.id;
}
function delGwcFun() {
$('.shop_car').removeClass('active');
$('.shop .no-shop').show();
$('.shop .has-price').hide();
$('.shop .has-price.js-num').text('0.00');
$('.gwc_list').html('');
$('.contfr2 .ChangeNum').hide().removeClass('.checked');
$('.ChangeNum .number').text(1);
$('.has-price .js-num').text(0);
$('.contfr2 .btn').show();
$('.shop_btn.no-shop').show();
$('.shop_btn.to-set').hide();
$('#location_url span i').text(0);
$('.goodsNum').text(0);
$('.shop_car').css('margin-top', '0');
$('.foot_gwc').animate({ 'bottom': '0' }, 200, function () {
$('.gwc_list').hide();
$('.gwc_empty').hide();
});
$('.bgdiv').hide();
$('.gwc-cz').hide();
$('.gwc-text').hide();
} //------------------------页面加载ajax请求-----------------从这开始---------------------------
$(function () {
var url = window.location.href; var u = getParam('storeId'); $.ajax({
type: "post", url: "/API/SotreAJAX.ashx", data: { action: 'loadMsgs', storeId: u },
success: function (data) {
for (var i = 0; i < data.length; i++) {
var msg = data[i];
$("#ulMsgs").append($("<div class=\"book1ConLoop1 border-b2\"><div class=\"contfl1\"><img src=\"" + msg.ThumbnailUrl180 + "\"id=\"" + msg.ProductId + "\" onclick=\"myFunction(this)\"><div class=\"img_bg\"></div></div><div class=\"contCent1 contCent2\"><p class=\"sketch\" id=\"" + msg.ProductId + "\" onclick=\"myFunction(this)\">" + msg.ProductName + "</p><p class=\"text\">评价 " + msg.Comment + "条 | 已售 " + msg.Sale + "</p><p class=\"price\">¥<span class=\"js-unitCost\">" + msg.SalePrice + "</span> <s>/" + msg.Unit + "</s></p><p class=\"scor\">首溯评分<i>4.3</i></p></div><div class=\"contfr2 js-contfr2\"><div name=\"spAdd\" class=\"btn js-disabled\" skuid=\"" + msg.SkuId + "\" style=\"\"></div><div class=\"ChangeNum js-disabled\" style=\"display: none;\"> <div class=\"text\"><span id=\"buyNum1\" class=\"number\">1</span></div><div class=\"plusMinus js-plusMinus\"><div name=\"spAdd\" class=\"plus\" skuid=\"" + msg.SkuId + "\"></div><div name=\"spSub\" class=\"minus\" skuid=\"" + msg.SkuId + "\"></div></div></div></div></div>"));
}
},
error: function () { alert("请求错误"); }
});
}); //点击+加入购物车ajax请求这个+只有点击的时候发出一次之后被隐藏了
$('.js-yScroll2').delegate('.js-contfr2 .btn', 'click', function () { var number = $("#buyNum").html(); // alert(number);
var skuId = $(this).attr("skuid");
//alert(skuId);
$.ajax({
url: "/API/VshopProcess.ashx",
type: 'post', dataType: 'json', timeout: 10000,
data: { action: "AddToCartBySkus", quantity: 1, productSkuId: skuId },
async: false,
success: function (resultData) {
if (resultData.Status == "OK") {
var xtarget = $("#addcartButton").offset().left;
var ytarget = $("#addcartButton").offset().top;
UpdateSpCount(skuId, resultData.SkuQuantity);
$("#divshow").css("top", "200px");
$("#divshow").css("left", parseInt(xtarget) + "px"); ShowMsg("商品已经添加至购物车", true);
$(".att-popup").removeClass('is-visible');
//myConfirmBox('添加成功', '商品已经添加至购物车', '现在去购物车', '再逛逛', function () { location.replace('ShoppingCart.aspx'); }, function () { location.replace("default.aspx"); });
//显示添加购物成功
}
else {
// 商品已经下架
ShowMsg("此商品已经不存在(可能被删除或被下架)", false);
return false;
}
}
});
//chageCartProductQuantity(number, skuId);
//购物车 + 数量
// $('div[name="spAdd"]').bind("click", function () {
$('.js-yScroll2').delegate('.plus', 'click', function () {
var number = $("#buyNum").html(); var number = parseInt(number);
// alert(number); var skuId = $(this).attr("skuid");
// alert(skuId);
//chageCartProductQuantity(number, skuId);
$.ajax({
url: "/API/VshopProcess.ashx",
type: 'post', dataType: 'json', timeout: 10000,
data: { action: "AddToCartBySkus", quantity: 1, productSkuId: skuId },
async: false,
success: function (resultData) {
if (resultData.Status == "OK") {
var xtarget = $("#addcartButton").offset().left;
var ytarget = $("#addcartButton").offset().top;
UpdateSpCount(skuId, resultData.SkuQuantity);
$("#divshow").css("top", "200px");
$("#divshow").css("left", parseInt(xtarget) + "px"); ShowMsg("商品已经添加至购物车", true);
$(".att-popup").removeClass('is-visible');
//myConfirmBox('添加成功', '商品已经添加至购物车', '现在去购物车', '再逛逛', function () { location.replace('ShoppingCart.aspx'); }, function () { location.replace("default.aspx"); });
//显示添加购物成功
}
else {
// 商品已经下架
ShowMsg("此商品已经不存在(可能被删除或被下架)", false);
return false;
}
}
});
});
//购物车 - 数量
//$('div[name="spSub"]').bind("click", function () {
$('.js-yScroll2').delegate('.minus', 'click', function () {
var number = parseInt($(this).parent().siblings('.text').children('span').text()); var number = parseInt(number);
// alert(number); var skuId = $(this).attr("skuid");
if (number > 0) chageCartProductQuantity(number, skuId);
});
}); // /vshop/shoppingCart 修改购物车商品数量,obj:最新数量 skuId:商品SkuId
function chageCartProductQuantity(obj, skuId) {
$.ajax({
url: "/API/VshopProcess.ashx",
type: 'post',
dataType: 'json',
timeout: 10000,
data: {
action: "ChageQuantity",
//skuId: $(obj).attr("skuId"),
//quantity: parseInt($(obj).val())
skuId: skuId,
quantity: obj
},
success: function (resultData) {
if (resultData.Status != "OK") {
alert("最多只可购买" + resultData.Status + "件");
} else {
$("i[gid=giftNum_" + skuId).text(parseInt($(obj).val()));
$("#spanPrice" + skuId).html(resultData.adjustedPrice);
$('#totalPrice').html('¥' + parseFloat(resultData.TotalPrice).toFixed(2));
}
}
});
} function BuyProductToCart() { $.ajax({
url: "/API/VshopProcess.ashx",
type: 'post', dataType: 'json', timeout: 10000,
data: { action: "AddToCartBySkus", quantity: parseInt($("#buyNum").val()), productSkuId: $("#hiddenSkuId").val() },
async: false,
success: function (resultData) {
if (resultData.Status == "OK") {
var xtarget = $("#addcartButton").offset().left;
var ytarget = $("#addcartButton").offset().top;
UpdateSpCount($("#hiddenSkuId").val(), resultData.SkuQuantity);
$("#divshow").css("top", "200px");
$("#divshow").css("left", parseInt(xtarget) + "px");
myConfirmBox('添加成功', '商品已经添加至购物车', '现在去购物车', '再逛逛', function () { location.replace('ShoppingCart.aspx'); }, function () { location.replace("default.aspx"); });
//显示添加购物成功
}
else {
// 商品已经下架
alert_h("此商品已经不存在(可能被删除或被下架),暂时不能购买" + resultData.Status);
}
}
});
}
</script>
</section>
</body>
</html>

/API/SotreAJAX.ashx:

获取的字段来自5张表,首先尝试了用属性点,发现有的属性为空,然后尝试用DTO做,查询内容包括:商品名称、每个商品评论、已售、单价、图片路径、单位、skuid、productid。

ProductDTO:

 public  class ProductDTO
{
public string ProductName { set; get; } public int ProductId { set; get; } public decimal SalePrice { set; get; }
public string SkuId { set; get; } public string ThumbnailUrl180 { set; get; } public string Unit { set; get; } public int Comment { set; get; } public int Sale { set; get; } }
ProductDal:
 public  class ProductDal
{
private string ConnectionString; public ProductDal()
{
this.ConnectionString = ConfigurationManager.ConnectionStrings["HidistroSqlServer"].ConnectionString;
} private ProductDTO ToProductDTO(DataRow row)
{
ProductDTO product = new ProductDTO();
product.ProductName = row["ProductName"].ToNullString();
product.ProductId = row["ProductId"].ToInt();
product.SalePrice = row["SalePrice"].ToDecimal();
product.SkuId = row["SkuId"].ToNullString();
product.ThumbnailUrl180 = row["ThumbnailUrl180"].ToNullString();
product.Unit = row["Unit"].ToNullString();
product.Comment = row["Comment"].ToInt();
product.Sale = row["Sale"].ToInt(); return product;
}
public IEnumerable<ProductDTO> GetAll(int storeId,int categoryId)
{
StringBuilder sb = new StringBuilder();
sb.AppendLine(@"SELECT p.Unit ,
p.ThumbnailUrl180 ,
pp.Comment ,
p.ProductName ,
p.ProductId ,
s.SkuId ,
s.SalePrice ,
poi.Sale
FROM Hishop_Products AS p
LEFT JOIN ( SELECT ps.ProductID AS ProductID ,
COUNT(ps.ProductId) AS Comment
FROM Hishop_ProductReviews AS ps
JOIN Hishop_Products AS p ON p.ProductID = ps.ProductID
GROUP BY ps.ProductID
) pp ON p.ProductID = pp.ProductID
LEFT JOIN ( SELECT pht.ProductID ,
COUNT(pht.ProductID) AS Sale
FROM Hishop_Products AS p
JOIN Hishop_OrderItems AS pht ON p.ProductID = pht.ProductID
GROUP BY pht.ProductID
) poi ON poi.ProductID = p.ProductID
LEFT JOIN Hishop_Categories AS c ON p.CategoryId = c.CategoryId
LEFT JOIN Hishop_SKUs AS s ON p.ProductId = s.ProductId
WHERE p.StoreId =@StoreId ");
if (categoryId>= )
{
sb.AppendLine("AND p.CategoryId=@CategoryId");
} DataTable dt = SqlHelper.ExecuteQuery(sb.ToString(), new SqlParameter("@StoreId", storeId), new SqlParameter("@CategoryId", categoryId));
List<ProductDTO> list = new List<ProductDTO>();
foreach (DataRow row in dt.Rows)
{
ProductDTO log = ToProductDTO(row);
list.Add(log);//list.Add(ToLog(row));
}
return list;
} }

SotreAJAX:

 public class SotreAJAX : IHttpHandler
{ public void ProcessRequest(HttpContext context)
{
context.Response.ContentType = "application/json";
string action = context.Request["action"];
List<ProductDTO> p;
string id = context.Request["storeId"]; //页面加载
if (action == "loadMsgs")
{
p = ProductHelper.GetAll(int.Parse(id), -).ToList(); context.Response.Write(new JavaScriptSerializer().Serialize(p));
}
//点击加载
else if (action == "post")
{
string ids = context.Request["categoryId"];
p = ProductHelper.GetAll(int.Parse(id), int.Parse(ids)).ToList(); context.Response.Write(new JavaScriptSerializer().Serialize(p));
}
else
{
throw new Exception("action错误");
}
} public bool IsReusable
{
get
{
return false;
}
}
}

/API/VshopProcess.ashx/AddToCartBySkus:商品详情页加入购物车

 private void ProcessAddToCartBySkus(HttpContext context)
{
context.Response.ContentType = "application/json";
int quantity = int.Parse(context.Request["quantity"], );
string productSkuId = context.Request["productSkuId"];
var productId = context.Request["productSkuId"].ToNullString().Split('_')[].ToInt();
if (quantity <= ) quantity = ;
Hidistro.SaleSystem.Shopping.ShoppingCartProcessor.AddLineItem(productSkuId, quantity);
ShoppingCartInfo shoppingCart = Hidistro.SaleSystem.Shopping.ShoppingCartProcessor.GetShoppingCart();
if (shoppingCart != null)
context.Response.Write("{\"Status\":\"OK\",\"TotalMoney\":\"" + shoppingCart.GetTotal().ToString(".00") + "\",\"Quantity\":\"" + shoppingCart.GetQuantity().ToString() + "\",\"SkuQuantity\":\"" + shoppingCart.GetQuantity_Sku(productSkuId) + "\"}");
else
context.Response.Write("{\"Status\":\"0\"}");
}

商城项目:商品列表ajax加载,ajax加入购物车--五张表的联合查询