当前位置:首页 > uni-app

投票 uniapp

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

在Uniapp中实现投票功能

前端页面设计

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

投票 uniapp

<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>中定义投票选项和提交逻辑:

投票 uniapp

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>组件:

<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 项目依赖 在项目根目录下执行以下命令,移除 node_modules 和依赖锁文件: rm -rf node_modules package-lock.json 如需清理全局…

uniapp极光推送

uniapp极光推送

uniapp极光推送集成步骤 准备工作 注册极光推送开发者账号,创建应用获取AppKey。确保uniapp项目已配置好原生插件支持。 安装插件 在uniapp项目manifest.json文件中,选…

uniapp使用npm

uniapp使用npm

uniapp中使用npm的方法 uniapp支持通过npm安装和管理第三方依赖包,以下是具体操作步骤: 安装Node.js环境 确保本地已安装Node.js(建议使用LTS版本),安装后会自动包含…

uniapp部署到服务器

uniapp部署到服务器

部署准备 确保本地开发环境已完成项目构建,生成静态文件(H5端为/dist/build/h5目录)。检查服务器环境是否安装Nginx/Apache等Web服务软件,并配置好域名解析。 上传文件 通过…

uniapp中如何使用iconfont

uniapp中如何使用iconfont

使用 Iconfont 在 Uniapp 中的步骤 下载 Iconfont 资源 访问 Iconfont 官网,选择需要的图标并添加到项目。下载时选择 Font class 格式,解压后会得到 .tt…

uniapp实现标题栏渐变

uniapp实现标题栏渐变

实现标题栏渐变的方法 在UniApp中实现标题栏渐变效果,可以通过修改页面的导航栏样式或使用自定义导航栏来实现。以下是几种常见的方法: 方法一:使用原生导航栏渐变 通过修改pages.json中的…