当前位置:首页 > uni-app

投票 uniapp

2026-02-05 19:10:38uni-app

在Uniapp中实现投票功能

前端页面设计

使用<radio><checkbox>组件创建单选/多选投票选项,结合v-for动态渲染选项列表。示例代码:

<template>
  <view>
    <radio-group @change="handleVote">
      <view v-for="(item, index) in options" :key="index">
        <radio :value="item.id" /> {{ item.text }}
      </view>
    </radio-group>
    <button @click="submitVote">提交投票</button>
  </view>
</template>

数据绑定与事件处理

<script>中定义投票选项和提交逻辑:

export default {
  data() {
    return {
      options: [
        { id: 1, text: "选项A" },
        { id: 2, text: "选项B" }
      ],
      selectedId: null
    };
  },
  methods: {
    handleVote(e) {
      this.selectedId = e.detail.value;
    },
    submitVote() {
      if (!this.selectedId) {
        uni.showToast({ title: "请选择选项", icon: "none" });
        return;
      }
      // 调用后端API提交数据
      uni.request({
        url: "https://your-api.com/vote",
        method: "POST",
        data: { optionId: this.selectedId },
        success: () => uni.showToast({ title: "投票成功" })
      });
    }
  }
};

后端接口与数据存储

假设使用Node.js + MySQL处理投票数据:

  1. API设计:创建接收投票数据的接口(如POST /vote),验证用户身份(防止重复投票)。
  2. 数据库操作:更新选项的票数字段。示例SQL:
    UPDATE vote_options SET count = count + 1 WHERE id = ?;

实时结果展示

通过uni.request定时拉取或WebSocket实现结果更新。前端展示可使用<progress>组件:

投票 uniapp

<view v-for="item in results" :key="item.id">
  <text>{{ item.text }} ({{ item.count }}票)</text>
  <progress :percent="(item.count / total) * 100" />
</view>

注意事项

  • 防刷机制:通过用户ID或IP限制投票次数。
  • 数据校验:后端验证选项ID合法性。
  • 跨端兼容:测试H5与小程序端的组件差异(如部分平台不支持<progress>)。

完整示例可参考Uniapp官方文档的表单组件网络请求部分。

标签: uniapp
分享给朋友:

相关文章

uniapp倒计时

uniapp倒计时

uniapp倒计时的实现方法 在uniapp中实现倒计时功能可以通过多种方式完成,以下是几种常见的实现方法: 使用setInterval实现基础倒计时 通过JavaScript的setInterva…

uniapp请求超时处理

uniapp请求超时处理

uniapp请求超时处理方法 在uniapp中处理请求超时可以通过多种方式实现,以下是几种常见的处理策略: 设置全局请求超时时间 在main.js中配置全局请求超时时间,适用于所有请求: uni…

uniapp前端页面

uniapp前端页面

Uniapp 前端页面开发指南 Uniapp 是一个基于 Vue.js 的跨平台开发框架,支持一次开发,多端部署(H5、小程序、App等)。以下是开发 Uniapp 前端页面的关键方法和注意事项。…

uniapp有用

uniapp有用

Uniapp 的优势 Uniapp 是一款基于 Vue.js 的跨平台开发框架,支持一次开发,多端发布,适用于 iOS、Android、Web、小程序等多个平台。其核心优势包括: 跨平台兼容性:…

uniapp 气泡

uniapp 气泡

uniapp 气泡实现方法 在 uniapp 中实现气泡效果可以通过多种方式,以下是常见的几种方法: 使用 CSS 样式实现气泡 通过 CSS 的 border 和 ::after 伪元素可以创建气…

uniapp全局校验

uniapp全局校验

uniapp全局校验的实现方法 在uniapp中实现全局校验可以通过多种方式,主要包括拦截器、全局混入和自定义指令等方法。 使用请求拦截器进行校验 在main.js中配置请求拦截器,对所有请求进行统…