项目概况
本文介绍了一款类似工具的小程序,可以解答小程序上的问题。目前主要用户为证券从业者和基金从业者。这个小程序的题库来自历年真题。
小程序名称:回答优等生
小程序技术架构
小程序不使用第三方框架,使用微信原生开发,不引入任何UI组件库。
后端接口采用PHP YII2框架
目前,小程序已实现的功能有:选择科目在线答题。您可以选择单题模式或列表模式来回答问题。对于每次考试,您都可以选择科目。这保持了考试和科目的二级结构。可以查看答题历史记录,可以查看当时做的题。健康)状况
从目前的功能实现来看,这个小程序已经完成了一个在线问答小程序的全闭环功能。
未来优化的几个领域是:
优化答题结果页面UI,优化答题链接分享,优化小程序开发过程中遇到的问题。
第一个问题:价值问题
选择单选题时,使用以下两个表单组件
-
默认组件事件
wxml 文件
class="radio-group" bindchange="radioChange">
<radio class="radio" wx:for-items="{{items}}" wx:key="name" value="{{item.name}}" checked="{{item.checked}}">
<text>{{item.value}}text>
radio>
</radio-group>
js 文件
Page({ data: { items: [ { name: 'USA', value: '美国' }, { name: 'CHN', value: '中国', checked: 'true' }, { name: 'BRA', value: '巴西' }, { name: 'JPN', value: '日本' }, { name: 'ENG', value: '英国' }, { name: 'FRA', value: '法国' }, ] }, radioChange: function (e) { console.log('radio发生change事件,携带value值为:', e.detail.value) } })
没错,使用的是官方的示例代码。我们看到选择的时候,默认e...只能取一个字符串。当时遇到的第一个问题就在这里。如果把这整个选项的信息都提取出来的话,可以直接使用{{JSON.(item)}}吗?当然不是,因为原生小程序本身不支持。
可以参考当时在社区找到的解决方案。
【除了单选按钮之外,还可以传递其他值吗? ]
解决办法就是引入wxs。我以前都是看官方文档的。每次来到这里,我都不知道它是做什么的,解决什么问题。现在我明白了。如果你想了解更多关于wxs的内容,请去看下面两个文档。
【微信小程序wxs有什么用? ]
【小程序中的精度计算问题】
第二个问题:每次的10题是怎么选的?
回答问题时,每次会显示10个问题。这10道题是从当前学科题库中随机选出的。当题库足够大的时候,基本上可以保证每次进来回答的10道题都和之前的一样。问题的答案都是不同的。
小程序截图
代码地址
前端小程序代码请移步下方
后台接口使用PHP。代码链接如下。由于我的几个小程序都使用了这个PHP服务,所以项目代码比小程序的PHP代码多很多。
如果细心的话,数据库也可以在线登录。如果遇到问题可以微信我。
适用人群
本开源代码适合小程序初学者,也可以在高校做在线问答小程序毕业设计时作为参考。
扫码体验
通过微信小程序搜索职业资格题库或直接扫描二维码