一个用jquery实现的拖拽购物车程序,主要源码如下: <div class="cart" id="cart">
<h3>购物车</h3>
<div id="cartProducts">
</div>
<p>
<strong>Total: <span id="cartTotal">0.-</span> $</strong>
</p>
<p>
<asp:Button ID="Button1" runat="server" Text="Button" OnClick="Button1_Click" /></p>
</div>
<h1>分类</h1>
<div id="products">
<asp:DataList ID="DataList1" runat="server">
<ItemTemplate>
<div class="product" id="<%#Eval("f_id") %>">
<img alt="" src='uploads/<%#DataBinder.Eval(Container.DataItem,"f_simg") %>' /><h2><%#Eval("f_name") %></h2>
<p style="color:red;">
粉黄线条
</p>
<p>
<strong>价格: <span>49.95</span> $</strong>
</p>
<a href="#" title="">add to cart</a>
</div>
</ItemTemplate>
</asp:DataList>
</div>
<br />
<asp:Label ID="Label1" runat="server" Text="Label"></asp:Label><br />
<script type="text/javascript">
$(document).ready(function(){
$('#products a').bind('click', function(){
$(this.parentNode).TransferTo({
to: addProductToCart(this.parentNode),
className: 'transferProduct',
duration: 400
});
return false;
});
$('div.product').Draggable({
revert: true,
fx: 300,
ghosting: true,
opacity: 0.4
});
$('#cart').Droppable({
accept: 'product',
activeclass: 'activeCart',
hoverclass: 'hoverCart',
tolerance: 'intersect',
onActivate: function(dragged){
if (!this.shakedFirstTime) {
$(this).Shake(3);
this.shakedFirstTime = true;
}
},
onDrop: addProductToCart
});
});
var addProductToCart = function(dragged){
var cartItem;
var productName = $('h2', dragged).html();
var productPrice = parseFloat($('span', dragged).html());
var productId = $(dragged).attr('id');
var isInCart = $('#' + productId + '_cart');
if (isInCart.size() == 1) {
var quantity = parseInt(isInCart.find('span.quantity').html()) + 1;
isInCart.find('span.quantity').html(quantity + '').end().Pulsate(300, 2);
cartItem = isInCart.get(0);
}
else {
$('#cartProducts').append('<div class="productCart" id="' + productId + '_cart">' + productName + '<a href="#">删除</a><br />数量: <span class="quantity">1</span><br />价格: <span class="price">' + productPrice + ' $</span></div>').find('div.productCart:last').fadeIn(400).find('a').bind('click', function(){
$(this.parentNode).DropOutDown(400, function(){
$(this).remove();
calculateCartTotal();
});
return false;
});
cartItem = $('div.productCart:last').get(0);
}
calculateCartTotal();
return cartItem;
};
var calculateCartTotal = function(){
var total = 0;
$('#cartProducts .productCart').each(function(){
var price = parseFloat($('span.price', this).html());
var quantity = parseInt($('span.quantity', this).html());
total += price * quantity;
});
$('#cartTotal').html(formatNr(total));
$('#cart p').Highlight(500, '#ff0', function(){
$(this).css('backgroundColor', 'transparent');
});
};
var formatNr = function(nr){
thousands = parseInt(nr / 1000);
hundreds = parseInt(nr - thousands * 1000);
decimals = parseInt((nr - parseInt(nr)) * 100);
return (thousands > 0 ? thousands + ' ' : '') + (nr > 1000 & hundreds < 100 ? '0' : '') + (nr > 1000 & hundreds < 10 ? '0' : '') + hundreds + '.' + (decimals > 0 ? decimals : '-');
}
</script>
<script language="JavaScript" type="text/javascript">var client_id = 1;
</script>
效果实现了。但是怎样把前台JS自动在购物车里显示的数据插入数据库中,也就是前台JS里的变量的值从后台.CS中插入数据库中呢?有知道的请帮帮我。 谢谢了
<h3>购物车</h3>
<div id="cartProducts">
</div>
<p>
<strong>Total: <span id="cartTotal">0.-</span> $</strong>
</p>
<p>
<asp:Button ID="Button1" runat="server" Text="Button" OnClick="Button1_Click" /></p>
</div>
<h1>分类</h1>
<div id="products">
<asp:DataList ID="DataList1" runat="server">
<ItemTemplate>
<div class="product" id="<%#Eval("f_id") %>">
<img alt="" src='uploads/<%#DataBinder.Eval(Container.DataItem,"f_simg") %>' /><h2><%#Eval("f_name") %></h2>
<p style="color:red;">
粉黄线条
</p>
<p>
<strong>价格: <span>49.95</span> $</strong>
</p>
<a href="#" title="">add to cart</a>
</div>
</ItemTemplate>
</asp:DataList>
</div>
<br />
<asp:Label ID="Label1" runat="server" Text="Label"></asp:Label><br />
<script type="text/javascript">
$(document).ready(function(){
$('#products a').bind('click', function(){
$(this.parentNode).TransferTo({
to: addProductToCart(this.parentNode),
className: 'transferProduct',
duration: 400
});
return false;
});
$('div.product').Draggable({
revert: true,
fx: 300,
ghosting: true,
opacity: 0.4
});
$('#cart').Droppable({
accept: 'product',
activeclass: 'activeCart',
hoverclass: 'hoverCart',
tolerance: 'intersect',
onActivate: function(dragged){
if (!this.shakedFirstTime) {
$(this).Shake(3);
this.shakedFirstTime = true;
}
},
onDrop: addProductToCart
});
});
var addProductToCart = function(dragged){
var cartItem;
var productName = $('h2', dragged).html();
var productPrice = parseFloat($('span', dragged).html());
var productId = $(dragged).attr('id');
var isInCart = $('#' + productId + '_cart');
if (isInCart.size() == 1) {
var quantity = parseInt(isInCart.find('span.quantity').html()) + 1;
isInCart.find('span.quantity').html(quantity + '').end().Pulsate(300, 2);
cartItem = isInCart.get(0);
}
else {
$('#cartProducts').append('<div class="productCart" id="' + productId + '_cart">' + productName + '<a href="#">删除</a><br />数量: <span class="quantity">1</span><br />价格: <span class="price">' + productPrice + ' $</span></div>').find('div.productCart:last').fadeIn(400).find('a').bind('click', function(){
$(this.parentNode).DropOutDown(400, function(){
$(this).remove();
calculateCartTotal();
});
return false;
});
cartItem = $('div.productCart:last').get(0);
}
calculateCartTotal();
return cartItem;
};
var calculateCartTotal = function(){
var total = 0;
$('#cartProducts .productCart').each(function(){
var price = parseFloat($('span.price', this).html());
var quantity = parseInt($('span.quantity', this).html());
total += price * quantity;
});
$('#cartTotal').html(formatNr(total));
$('#cart p').Highlight(500, '#ff0', function(){
$(this).css('backgroundColor', 'transparent');
});
};
var formatNr = function(nr){
thousands = parseInt(nr / 1000);
hundreds = parseInt(nr - thousands * 1000);
decimals = parseInt((nr - parseInt(nr)) * 100);
return (thousands > 0 ? thousands + ' ' : '') + (nr > 1000 & hundreds < 100 ? '0' : '') + (nr > 1000 & hundreds < 10 ? '0' : '') + hundreds + '.' + (decimals > 0 ? decimals : '-');
}
</script>
<script language="JavaScript" type="text/javascript">var client_id = 1;
</script>
效果实现了。但是怎样把前台JS自动在购物车里显示的数据插入数据库中,也就是前台JS里的变量的值从后台.CS中插入数据库中呢?有知道的请帮帮我。 谢谢了
当拖到购物车的时候就 加入 购物车。这个用ajax吧。
至于怎样实现ajax应该不用说吧。
关键是 你能知道 什么时候 应该触发ajax事件。
// var password = encodeURI($("#password").val());//编码
// var code= encodeURI($("#codeValue").val());
//
// //******************************************************************************************************************************************************组合成对象的形式
var queryString = {cName:cName1};
return "cName=asd";
}
function clear()
{
$("#userName").val("");
$("#password").val("");
$("#codeValue").val("");
}$(function () { $.get("sendMsg.aspx",createQueryStringLogin(),
//******************************************************************************************************************************************************发送请求
function(data){ //回调函数
alert(data);
}
);}) function login(){
alert(data);
// $.get("sendMsg.aspx","",
// //******************************************************************************************************************************************************发送请求
// function(data){
//
//
//// if(data.indexOf("admin") >= 0)
//// {
//// location.href="members.aspx";
////
//// }
//// else if(data.indexOf("codeError") >= 0)
//// {
//// $(".codeImg").click();
//// alert("验证码错误!");
////
////
//// }
//// else
//// {
//// $(".codeImg").click();
//// alert("登陆失败!");
//// //****************************************************************************************************************************************************** setTimeout(function (){ $("#loginWin").dialog('close');},300);
////
//// }
//
// }
// );
}
$(function(){ //相当于window.ready 页面加载完自动调用
$("#loginbtn").click(login()); //绑定id为loginbtn的点击事件
})
ajax可以实时跟服务器交换信息,具体的去看ajax资料