一个关于 PHP 的问题大家帮解答下,问题发在 segmentfault 上了

2014-07-27 09:33:56 +08:00
 bufannao
问题 http://segmentfault.com/q/1010000000619000
@joyqi @Sunyanzi
3847 次点击
所在节点    问与答
35 条回复
wavingclear
2014-07-27 11:37:31 +08:00
@bufannao 评论完刷新一下页面发现自己说的啊ABCD被系统给“改”了这个变化似乎更不适XDD
如果允许评论下跟贴(楼中楼那种)用户会更混乱
个人认为用户可以理解答题时随机打乱选项这件事,很难理解评论奇怪的输入选项的方式。
答题时扭一下大家还是会回答,评论时别扭了那评论率不就少很多。
wavingclear
2014-07-27 11:40:07 +08:00
答题时换一个符号系统用数字,或者直接不显示ABCD,在网页上点击。
dongk
2014-07-27 12:33:03 +08:00
这个功能的设计有问题,基于有问题的设计去考虑算法没有意义。
bufannao
2014-07-27 12:47:49 +08:00
@dongk 问题出在哪?
barbery
2014-07-27 13:48:11 +08:00
我觉得楼上有几个答案不错啊,评论的时候ABCD不要让用户输入,而是通过按钮让用户引用某个选项,每个答案的选项都有主键id,只要引用把id带上,在输出题目的时候,打乱下选项,把打乱后的选项存起来,输出评论时做下正则替换。。。
zungmou
2014-07-27 14:25:52 +08:00
每个选项 A, B, C, D 都对应一个编号,例如: 1, 2, 3, 4,保存评论的同时,对评论内容作替换,只记录 1, 2, 3, 4 编号,加载答案时,再替换回来。无论怎么随机,都可以呈现。
imn1
2014-07-27 16:55:23 +08:00
无解,因为评论是自由发言,如果不是写“答案A有问题”,而是写“第一个答案有问题”呢?类推……

建议写/显示评论有固定的顺序,且与答题分开,就是答题时随机其他时候固定
而且答题前或答题中显示评论本来就有违“闭卷”原则
solupro
2014-07-27 17:53:07 +08:00
@barbery 如果用户能按照约定输入是没问题,但是总会有”搅局者“,比如上面 @RemRain 提到的 选项A 用户可能输入 第一个答案、第一个、第1个、first、1st、A(全角)、A(半角)等
solupro
2014-07-27 17:59:35 +08:00
想了想,能不能换个思路。用户评论不是归属哪个题目,而且归属哪题的哪个选项。
barbery
2014-07-27 19:23:11 +08:00
@solupro 不行,因为一个讨论里面会引用超过1个选项。。。
对于这类问题只能把搅局者排除掉或者写多点正则尽可能的适配多的类型。。
solupro
2014-07-27 19:31:03 +08:00
@barbery 确实多选项是个问题
micate
2014-07-27 20:18:00 +08:00
思路:
1. 用户发表评论并提交时,一并提交用户看到的答案顺序(A -> 0001,B -> 002 ...);
2. 后端接收到评论后,对该评论按照用户看到的顺序进行替换:A -> 0001,B -> 0002 ...;
3. 输出评论到前台时,根据当前答案的顺序,比如 A -> 0002,B -> 0001,再将字母替换回来;

这个输入和输出可能都需要些辅助字符:如用户输入的可能并不是 A,而是 #A;替换为的并不是 0001,而是有特殊前后缀的,比如 __0001__,只是为了可以分隔有效字符。

同时可以结合前后端检测,比如当用户输入了系统可能分辨不出来的选项时,可以提示用户一些输入规范。

针对用户会感觉混乱的问题:
可以鼠标滑过 A、B 的时候,浮框显示 A、B 对应的答案,这需要替换的时候,包裹一些辅助标签,如 <span data-option="0001">A</span>
kmvan
2014-07-28 09:04:52 +08:00
输入框弄个 abcd 按钮,让用户写答案评论时需要引用的选项点按钮引用,按钮输出 #a 这样。输出到前台的时候自动替换呗!这个我想应该是最优解决方案
hisway
2014-07-28 09:41:02 +08:00
1,引导用户使用#A,@A之类的方式对某个选项评论
2,提交评论时保存下当前选项顺序
3,随机时根据顺序替换#A,@A之类评论内容
bufannao
2014-07-28 16:27:05 +08:00
@hisway
@kmvan
先感谢一下,你们对问题难度的理解还不够,难度在语意分析。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/124681

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX