
index.wxml
<view wx:for="{{list}}" wx:key="id" data-id="{{item.id}}" bindtap="handleItemClick" class="{{item.selected ? 'selected' : ''}}">
{{item.name}}
</view>
index.js
Page({
data: {
list: [
{ id: 1, name: '选项1', selected: false },
{ id: 2, name: '选项2', selected: false },
],
},
handleItemClick(event) {
const { id } = event.currentTarget.dataset;
const list = this.data.list.map(item => ({
...item,
selected: item.id === parseInt(id),
}));
this.setData({ list });
},
handleSubmit() {
const selectedItems = this.data.list.filter(item => item.selected).map(item => item.id);
wx.request({
url: 'http://localhost:3000/submit-selected',
method: 'POST',
data: { selectedItems },
success(res) {
console.log('提交成功', res.data);
},
fail(err) {
console.error('提交失败', err);
},
});
},
});
index.wxss
.selected {
background-color: #ff0;
}
虽然这个问题主要关注前端实现,但如果你需要将选中项的数据发送到后端进行处理(例如保存或提交),你还需要在后端进行相应的处理。
接收数据:
在后端,你需要一个接口来接收前端发送的选中项数据。例如,在Node.js中,你可以使用Express框架来创建一个POST接口:
const express = require('express');
const app = express();
app.use(express.json());
app.post('/submit-selected', (req, res) => {
const selectedItems = req.body.selectedItems;
// 在这里处理选中项数据,例如保存到数据库
res.send({ status: 'success' });
});
app.listen(3000, () => {
console.log('Server is running on port 3000');
});