现在做一个商城后台,有个需求,就是点击选择商品规格后,动态的出现按照选择的规格排列组合出现的一些商品规格组合,并分配sku
请问这样的在js里面写逻辑可以实现吗?要怎么实现?还是放在后台去处理比较好?
把你的选择传到后面,后面根据条件在数据库中查询出来,再用json传给你,你解析一下json就好
你要是用js设置,你可以试试jQuery写一下,具体太复杂了,你自己试试吧
两个嵌套循序就可以。如果数据量不大或逻辑不复杂的话,JS可以独立完成。
(关于SKU是在网上搜的,编号也不懂,若有误,请自己按照需求自行修正)
1、SKU是产品编号,指代产品规格(尺码、颜色)、单价、库存等销售属性。
当选择了尺码和颜色时,需要唯一确定SKU编号。
2、想要自动分配SKU编号,就看商城制定的是什么样的规则;
假说SKU编号规则是 PS{尺码}C{颜色}。示例M号黑色的,表示为 PSmCblack
将尺码和颜色对应的数值放到标签的data属性中
示例页面元素定义:
<div>
<div>
<label>尺码:</label>
<ul id="list_size">
<li data-no="m"><input type="checkbox">M</li>
<li data-no="x"><input type="checkbox">X</li>
<li data-no="xl"><input type="checkbox">XL</li>
</ul>
</div>
<div>
<label>颜色:</label>
<ul id="list_color">
<li data-no="black"><input type="checkbox">黑色</li>
<li data-no="red"><input type="checkbox">红色</li>
<li data-no="white"><input type="checkbox">白色</li>
</ul>
</div>
<button id="btnSelect">选择</button>
<hr>
<!-- 呈现选择的数据 -->
<table id="products">
<thead>
<tr>
<th>尺码</th>
<th>颜色</th>
<th>价格</th>
<th>SKU</th>
</tr>
</thead>
<tbody></tbody>
</table>
</div>
选择事件处理
//选择处理事件
document.getElementById('btnSelect').addEventListener("click", function(){
//选择的尺码
let selectedSizeds = document.querySelectorAll("#list_size input:checked");
//选择的颜色
let selectedColors = document.querySelectorAll("#list_color input:checked");
//校验略
//合成
let arrContent = [];
selectedSizeds.forEach(item_outer => { //遍历尺寸
let sizeNode = item_outer.parentNode;
//尺码编号
let size = sizeNode.dataset.no;
selectedColors.forEach(item_inner => { //遍历颜色
let colorNode = item_inner.parentNode;
//颜色编号
let color = colorNode.dataset.no;
let skuno = `PS${size}C${color}`;
//行数据
arrContent.push(`<tr><td>${sizeNode.innerText}</td><td>${colorNode.innerText}</td><td><input class="txt" /></td><td>${skuno}</td></tr>`);
});
});
//写入到列表中
document.querySelector("#products tbody").innerHTML = arrContent.join("");
});
这个最好用后台处理成数组在前台循环就是了,js写就
麻烦了