当前位置: 首页 > Web前端 > HTML

手把手教你搭建消防安全答题小程序-实现答题功能以及提交答卷到云数据库

时间:2023-03-28 14:50:10 HTML

一步步教你搭建消防安全答题小程序——实现答题功能,提交答题到云端数据库第二阶段是功能交互。前面两篇文章分别介绍了如何使用云开发实现查询题库的功能,并将获取的题型数据动态更新到答题页面。本文后面聊聊如何实现完整的答题交互逻辑和功能。软件架构:微信原生小程序+云开发戳源码地址,获取源码,版本不断迭代中……废话不多说,直接上代码。一步步演示,一步步教你实现完整的答题交互逻辑和功能。主要涉及答题、判断对错、系统自动评分、切换下一题、提交答题纸、跳转到答题结果页面等实现。这里的answer事件主要使用radio-group组件。当radio-group中的选中项发生变化时,触发change事件,detail={value:[选中的radio值数组]}。使用bindchange绑定并监听radio-group中的事件radioChange。test.js定义了radioChange函数。//选择选项事件radioChange(e){this.data.chooseValue[this.data.index]=e.detail.value;},切换到下一个主题event在组件中绑定一个事件处理函数,比如bindtap,当用户点击该组件时,会在页面对应的Page中找到相应的事件处理函数。在对应的Page定义中编写对应的事件处理函数,参数为event。nextSubmit(){//如果没有选择if(this.data.chooseValue[this.data.index]==undefined||this.data.chooseValue[this.data.index].length==0){returnwx。showToast({title:'Pleasechoosetheanswer!',icon:'none',duration:2000})}//判断所选选项是否为正确答案this.chooseJudge();//判断是否为最后一题this.lastJudge();},什么是事件?事件是从视图层到逻辑层的一种通信方法。事件可以将用户操作反馈给逻辑层进行处理。可以为组件绑定事件,当到达触发事件时,会执行逻辑层中对应的事件处理函数。事件对象可以携带额外的信息,比如id、dataset、touches。真假判断逻辑//判断所选选项是否为正确答案chooseJudge(){vartrueValue=this.data.questionList[this.data.index]['true'];varchooseVal=this.data.chooseValue[this.data.index];if(chooseVal.toString()!=trueValue.toString()){//错误答案会记录错误问题this.data.wrong++;this.data.wrongListSort.push(this.data.index);this.data.wrongList.push(this.data.questionList[this.data.index]._id);}else{//如果回答正确,累计总分this.setData({totalScore:this.data.totalScore+this.data.questionList[this.data.index]['scores']})}},switchorsubmit逻辑//判断是否是最后一题lastJudge(){if(this.data.index{//跳转到答题页面查看结果wx.redirectTo({url:'../results/results'});wx.hideLoading();})}总结至此,答案的完整交互逻辑和功能已经实现。也就是说,整个答题页面的答题环节已经具备了前后端和数据库的能力。在下一篇文章中,我们将实现答题结果页面,从数据库中实时查看结果。