Corel FORUM
Forum użytkowników programów firmy Corel. Grafika wektorowa, rastrowa i obróbka zdjęć cyfrowych

Zlecę/wykonam pracę - Ile za Quiz 10 - pytań

zayzayer - 9 Kwiecień 2011, 08:46
Temat postu: Ile za Quiz 10 - pytań
Napisałem prosty quiz, ale pewnie popełniłem w nim dużo błędów, ponieważ moja wiedza na temat js jest znikoma praktycznie żadna więc ten że quizik nie chcę wyświetlać odpowiedzi.
Czy znajdzie się tu ktoś kto napisze lub poprawi ten quiz tak żeby działał i za ile. Przypomnę tylko że na 10 -pytań - tutaj w kodzie jest na 4- pytania
Kod:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>Quiz</title>
<script type="text/javascript">
<!--
function UdzielonaOdpowiedz(pytanie)
{
for (var i =0; i <= 3; ++i)
if (document.forms("pytania").elements("q" + pytanie)[i].checked)
 return i + 1;
return 0;
}
function DobraOdpowiedz(pytanie)
{
switch (pytanie) {
 case 1:  return 3;
 case 2:  return 2;
 case 3:  return 4;
 default: return 0;
 }
}
function UstawStanOdpowiedzi(odpowiedz,poprawna)
{
var s;
if (poprawna)
 s = "<span style='color: green;'>Odpowiedź poprawna!Bravo</span>";
 
 else s = "<span style='color: red;'>Odpowiedż niepoprawna...</span>";
switch (odpowiedz) {
 case 1: a1.innerHTML = s; break;
case 2: a2.innerHTML = s; break;
case 3: a3.innerHTML = s; break;

 }
}
function SprawdzOdpowiedzi()
{
var dobre = 0;
for (var i = 1; i <= 3; ++i) {
if (Dobra0dpowiedz(i) == Udzielona0dpowiedz(i)) {
UstawStanOdpowiedzi(i, true);
++dobre;
} else {
UstawStanOdpowiedzi(i, false);
 }
}
window.alert("Liczba poprawnych odpowiedzi:\t" + dobre
+ "\nLiczba złych odpowiedzi:\t\t" + (3 - dobre));
}
-->
</script>


</head>

<body>
<form name="pytania">
<p>Monika zanim została fryzjerką, to chdziła do szkoły:</p>
<input type="radio" name="q1" value="1" />gastronomicznej<br />
<input type="radio" name="q1" value="2" />handlowej<br />
<input type="radio" name="q1" value="3" />krawieckiej<br />
<input type="radio" name="q1" value="4" />nie chodziła do szkoły wogóle<br />
<p id="al"></p>
<p>Kto z mojej listy znajomych na FB ma wykształcenie informatyczne i w razie potrzeby służy swoją nieocenioną poradą</p>
<input type="radio" name="q2" value="1" />Janusz<br />
<input type="radio" name="q2" value="2" />Mirek<br />
<input type="radio" name="q2" value="3" />Kasika<br />
<input type="radio" name="q2" value="4" />Tomek<br />
<p id="a2"></p>
<p>Ile obecnie Facebook ma zareiestrowanych kont</p>
<input type="radio" name="q3" value="1" />50 - mln<br />
<input type="radio" name="q3" value="2" />100 - mln<br />
<input type="radio" name="q3" value="3" />200 - mln<br />
<input type="radio" name="q3" value="4" />ponad 500 - milionów<br />
<p id="a3"></p>
<p>Obwód przeciętnej śrubki to;</p>
<input type="radio" name="q4" value="1" />2 mm<br />
<input type="radio" name="q4" value="2" />3 cm<br />
<input type="radio" name="q4" value="3" />1 cal<br />
<input type="radio" name="q4" value="4" />pół centymetra<br />
<p id="a4"></p>
</form>
<input type="button" value="Sprawdź odpowiedzi" onclick="SprawdzOdpowiedzi();" />
</body>
</html>

ABu - 13 Kwiecień 2011, 22:54

JS nie jest najlepszym sposobem na quiz, radziłbym np. php. Jest prościej, czytelniej.
Chyba że ma to być quiz typowo rozrywkowy, to można to jeszcze jakoś przeboleć.

Uwaga 1:
popraw nazwę funkcji (mylą Ci się zera z dużymi literami "O"). W funkcji SprawdzOdpowiedzi() jest:
Cytat:
if (Dobra0dpowiedz(i) == Udzielona0dpowiedz(i)) {

powinno być:
Cytat:
if (DobraOdpowiedz(i) == UdzielonaOdpowiedz(i)) {


Uwaga 2:
w <body> pod pierwszym pytaniem akapit ma ID
Cytat:
<p id="al"></p>

powinno być
Cytat:
<p id="a1"></p>



Na IE to wystarczy, jak chcesz dla innych przeglądarek to daj znać na PW.


Powered by phpBB modified by Przemo © 2003 phpBB Group