使用jFormer(jQuery和PHP)帮助进行多项选择测验

时间:2011-06-11 21:13:41

标签: php jquery

我想知道是否有人可以通过jFormer进行多项选择测验来帮助我。

基本上我是PHP新手,我遇到以下问题:

  • 找出如何垂直排列单选按钮(此时我正在基于'Survey'Demo(http://www.jformer.com/demos/survey/)进行我的测验,并且它不会让我重新排列单选按钮。相反,当我do,它分别处理每个单选按钮,你只能选择第一个。
  • 我的所有单选按钮都标有A - E(例如< input id="statement1-choice3" type="radio" value="C" name="statement1" / >)我如何计算结果,以便那些选择了大部分A答案的人与选择大部分B的人展示不同的div答案?

提前致谢,

艾拉

1 个答案:

答案 0 :(得分:2)

要计算结果,您可能会在列表(数组)中包含所有答案。

在你的情况下,我认为数组变量是$_POST ......

所以当你有一个包含答案的数组时:

$data = array(
    'question1' => 'a',
    'question2' => 'b',
    'question3' => 'a',
    'question4' => 'c',
    'question5' => 'a',
    'question6' => 'e',
    'question7' => 'c',
    'question8' => 'd',
    'question9' => 'a',
    'question10' => 'a',
    'question11' => 'b'
);

您可以浏览数组的每个答案,看看给出了哪个答案。 然后计算每个答案,看看哪个答案最多。

$a = 0;
$b = 0;
$c = 0;
$d = 0;
$e = 0;

foreach($data as $question => $answer) {
    if($answer == 'a') {
        $a++;
    } else if($answer == 'b') {
        $b++;
    } else if($answer == 'c') {
        $c++;
    } else if($answer == 'd') {
        $d++;
    } else if($answer == 'e') {
        $e++;
    }
}

if($a > $b && $a > $c && $a > $d && $a > e) {
    echo '<div>Most of your answers where A</div>';
} else if($b > $c && $b > $d && $b > $e) {
    echo '<div>Most of your answers where B</div>';
} else if($c > $d && $c > $e) {
    echo '<div>Most of your answers where C</div>';
} else if($d > $e) {
    echo '<div>Most of your answers where D</div>';
} else {
    echo '<div>Most of your answers where E</div>';
}

由于您仍然从PHP开始,我将使代码尽可能清晰。 有很多(更难以理解的)方法。