ajax提交购物车,JS购物车(3)-Ajax发送POST请求提交订单

本文详细介绍了在购物车页面中,当用户点击‘提交订单’时如何使用JavaScript来收集商品ID和数量,并通过Ajax发送POST请求到后端。首先,遍历商品列表,检查选中项,然后将选中商品数据封装成JSON对象并发送。涉及到的技术点包括HTML、jQuery、JSON和Ajax请求。
摘要由CSDN通过智能技术生成

一、背景和需求

在购物车页面中,当用户点击“提交订单”按钮时

需要收集商品ID、商品数量等订单数据,并向后端发送POST请求

二、HTML代码

以SKU为单位的商品数据的层级结构如下:

goods-1.jpg
iphone11
黑色128G
Apple官方自营店
5999
5999

三、实现思路

1、将商品数据封装在JSON数组中

遍历商品列表,检查checkbox的checked属性是否为true

对于checked属性为true的商品

将其ID和数量放入一个JSON对象中

再利用push方法放入data数组

遍历完成后,通过stringify方法将data转化为字符串

2、通过Ajax发送POST请求

使用 jQuery 来封装POST请求

必要的内容包括:type、url、data、contentType以及请求成功or失败的回调函数

四、相关JS代码

//获取“提交订单”的按钮

var submit=document.getElementById("submit-order");

submit.οnclick=function(){

var data=[];

var radios=document.getElementsByName('p-radio');

var count=document.getElementsByClassName("quantity");

var items=document.getElementsByClassName("item");

for(var m=0;m

{

if(radios[m].checked==true)

{

var item={};

item.tradeid=items[m].getAttribute('id');

item.amount=count[m].value;

data.push(item);

}

}

var result=JSON.stringify(data);

$.ajax({

type : "post",

//后台请求地址

url : '',

data : result,

//表明提交的是JSON类型的数据

contentType: "application/json",

//异步请求

async : false,

success : function(){ },

error :function(){ }

});

}

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,我可以帮你解决这个问题。首先,我们需要了解购物车案例的基本流程,然后再进行Ajax改造。 购物车案例基本流程: 1. 用户点击商品的“加入购物车按钮。 2. 系统将商品信息添加到购物车中。 3. 系统显示购物车中的商品列表和总价。 4. 用户可以继续添加商品或者结算购物车Ajax改造步骤: 1. 在“加入购物车按钮的点击事件中,使用Ajax向后台发送请求,将商品信息添加到购物车中。 2. 在后台处理完请求后,返回购物车中的商品列表和总价,然后将这些数据返回给前端。 3. 前端收到后台返回的数据后,使用JavaScript动态更新购物车列表和总价,实现无刷新操作。 4. 用户可以继续添加商品或者结算购物车,这些操作也都可以通过Ajax实现。 下面是一个简单的Ajax购物车示例代码: 前端代码: ```html <!-- 显示商品列表 --> <div id="goods-list"></div> <!-- 显示购物车列表 --> <div id="cart-list"></div> <!-- 显示总价 --> <div id="total-price"></div> <!-- 加入购物车按钮 --> <button class="add-to-cart" data-goods-id="1">加入购物车</button> <script> $(function() { // 加入购物车按钮点击事件 $('.add-to-cart').click(function() { var goodsId = $(this).data('goods-id'); $.ajax({ url: '/cart/add', type: 'POST', dataType: 'json', data: {goodsId: goodsId}, success: function(data) { // 更新购物车列表和总价 $('#cart-list').html(data.cartListHtml); $('#total-price').text(data.totalPrice); } }); }); }); </script> ``` 后台代码: ```php <?php // 处理加入购物车请求 function addCartAction() { $goodsId = $_POST['goodsId']; // 将商品添加到购物车中 $cart->addGoods($goodsId); // 获取购物车列表和总价 $cartListHtml = $cart->getCartListHtml(); $totalPrice = $cart->getTotalPrice(); // 返回JSON格式数据 $result = array('cartListHtml' => $cartListHtml, 'totalPrice' => $totalPrice); echo json_encode($result); } ?> ``` 在这个示例中,我们使用了jQuery的Ajax方法进行请求发送和数据处理。后台代码使用了PHP语言实现,但是你也可以使用其他语言实现,例如Java、Python等等。总之,通过Ajax技术,我们可以实现无刷新操作,提升用户体验。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值