【发布时间】:2018-07-03 18:22:22
【问题描述】:
我正在构建一个测验。示例 HTML:
<div class="panel qContainer">
<ol id="left">
<li>
Question1:<br/>
<input type="radio" value="1A" name="SortingQ1" />1A
<input type="radio" value="1B" name="SortingQ1" />1B
<input type="radio" value="1C" name="SortingQ1" />1C
</li>
<li>
Question2:<br/>
<input type="radio" value="2A" name="SortingQ2" />2A
<input type="radio" value="2B" name="SortingQ2" />2B
<input type="radio" value="2C" name="SortingQ2" />2C
<input type="radio" value="2D" name="SortingQ2" />2D
<input type="radio" value="2E" name="SortingQ2" />2E
</li>
</ol>
<input type="button" id="button" value="submit" />
</div>
计算结果有5个变量:sL、sK、sA、sG、sB。 每个答案都为这些变量赋予数值。例子: 1A = sL+4, sK+1, sA+2, sG+5, sB+3
提交后,所有的值都应该相加,最大的变量将作为结果返回。
我的问题是:
如何正确调用计算/提交值的动作?
如何只取选定的输入值?
如何计算结果?
关于结果,我认为最简单的方法是使用简单的 IF 语句:
$x = ''; //value from input, not sure how to initialise it
if ($x == '1A'){
$sL=+4;
$sK=+1;
$sA=+2;
$sG=+5;
$sB=+3;
}
当然,我不确定PHP是否有这样的计算逻辑。也许Javascript会更容易?至少自己做计算。使用 JS 非常简单。我正在考虑使用 PHP,因为结果将应用于用户数据库字段。
欢迎提出任何建议!
如果您有任何问题,请告诉我。 (此表单将在phpBB环境中使用)
这是我的想法的一个简单示例: 测验你是什么动物?
可能的结果:R1 = 狮子; R2 = 企鹅;
问题 1 是:“你吃肉吗?”
1A - 是(R1=+1;R2=+0);
1B - 否(R1=+0;R2=+1);
问题 2 会是:“你喜欢冷还是热?”
2A - 冷(R1=+0;R2=+1);
2B - 热量(R1=+1;R2=+0);
答案变量被求和后,返回总和更高的结果(狮子或企鹅)
【问题讨论】:
-
如果您使用 JS,有人可以随时更改计算。尽管在这种情况下这似乎没什么大不了的。你可以用 JS 或 PHP 来做。
-
通过 JS 它将是动态的,即不需要重新加载页面。使用 PHP,您必须先提交表单,然后由服务器(而不是客户端)完成计算。
-
你好@prodigitalson,是的,你是对的。安全不是最大的问题。我正在寻找最精简的方式来做到这一点,没有不必要的负载和资源使用。但是我对 PHP 很陌生,所以不知道如何做这样简单的事情,比如取这样的值和做这样的计算。我想一切都会被放入数组(答案数组,用户输入数组)中,然后使用 FOR 答案数组将与用户输入数组进行比较并向结果变量添加适当的值。然而如何用 PHP 做这样的计算呢?
-
你好@Qirel,好吧,在这种情况下,结果将应用于用户数据库,并根据结果进行一些更改,所以我不介意页面重新加载。这实际上是一件好事。页面重新加载问题将被隐藏,只有答案可用。
标签: javascript php html forms sum