时间:2014-07-17 09:31:10

标签: javascript arrays add var

这是我的1/13页代码。

我正在尝试进行测验,然后转到下一页以获得下一个答案,这就是我在链中连接13页的原因。

如果您之前的答案正确无误,我需要帮助的是将总金额加到下一页/答案。例如

我的这个问题是正确的,应该总共8%(因为有13个问题,100/13是7.69230769231,但我猜它会四舍五入)。

我希望下一页的答案是8%,无论如何,如果他们弄错了... + 8%。

<html><head><title>Quiz</title>

<style>

.parent {
   width: 150px; /* I took the width from your post and placed it in css */
   height: 75px;
}

/* This will style any <img> element in .parent div */
.parent img {
   height: 100%;
   width: 100%;
}

.parent img {
  padding-left: 605px;
}

body {
  text-align: center;
  padding-top: 100px;
  font-size: 20px;
  font-family: sans-serif,Verdana;
}

</style>

<script language="JavaScript">
<!--

var numQues = 1;
var numChoi = 3;

var answers = new Array(13);
answers[0] = "Ben Stuart";
answers[1] = "Imran Ali";
answers[2] = "Daniel Rooney";
answers[3] = "Brian Little";
answers[4] = "David Rocke";
answers[5] = "Pamela McElhaney";
answers[6] = "David Hooper";
answers[7] = "Steven Woodhouse";
answers[8] = "Somewhere Sunny";
answers[9] = "Phillip Cairney";
answers[10] = "Stuart Clark";
answers[11] = "Jon Maciness";
answers[12] = "He would not be a celebrity";

function getScore(form) {
  var score = 0*2;
  var currElt;
  var currSelection;

  for (i=0; i<numQues; i++) {
    currElt = i*numChoi;
    for (j=0; j<numChoi; j++) {
      currSelection = form.elements[currElt + j];
      if (currSelection.checked) {
        if (currSelection.value == answers[i]) {
          score++;
          break;
        }
      }
    }
  }

  score = Math.round(score/13*100);
  form.percentage.value = score + "%";


}

// -->
</script>
</head>

<body background="C:\Users\whittlej\Desktop\Website 1\wallpaper.jpg">


<form name="quiz">
1. Who was inspired to join IT because of computer games ?<br>
<input type="radio" name="q1" value="Ben Stuart">Ben Stuart<br>
<input type="radio" name="q1" value="David hooper">David hooper<br>
<input type="radio" name="q1" value="Imran Ali">Imran Ali<br>
<p>


<input type="button" value="Save" onClick="getScore(this.form)">
<input type="reset" value="Clear"><p>

<div class="parent">
<A HREF="imran.html"><IMG SRC="next.png" alt="Next"></a>
</div>
Score = <input type=text size=15 name="percentage"><br>

</body></html>

1 个答案:

答案 0 :(得分:1)

我有点不清楚你在问什么.. 问题是如何将分数从一个页面传递到下一个页面?

所以你在第一页上得分为8%(比方说),如何将其传递到下一页,所以如果你也能得到那个,那么它是16%?

如果是这种情况,那么有几种方法可以做到这一点:

1)将分数作为URL的一部分传递到下一页。例如,当进入下一页时使用URL:

http://server.etc/QuizPage2.htlp?scoresofar=8

使用javascript window.location.searcxh获取后的部分?弄清楚到目前为止得分是多少。

这方面的一个问题是它很容易作弊:人们可以只编辑URL并提高他们的分数。

2)使用cookie来维持分数。您可以直接指定得分,也可以是每个问题得分的地图。随着网页的变化,每个域都会保留Cookie,因此您可以使用它们来管理状态,在这种情况下,您的分数到目前为止。有关如何使用cookie的信息,请参阅javascript的document.cookie函数。 w3Schools cookies page

这比选项1更少“黑客攻击”,但仍然不安全。人们可以发布自己的javascript来操纵cookie。

3)使用会话变量(例如在PHP中),以便维护一个到目前为止保持分数的会话变量。这可能是最好的方法。如何做到这一点是一个完全独立的讨论,但您可以使用谷歌等轻松找到一些示例PHP会话变量代码。

如果您需要超级安全,请使用HTTP。

4)不要更改页面。将它全部列为一个网页,使用javascript不要移动到下一个poage,但是当用户运行测验时隐藏/取消隐藏正确的questons。

除非您在Cookie或会话变量中保持当前得分(或每个问题的得分),否则如果用户刷新页面,状态将会丢失,他们将不得不再次开始测验。