본문 바로가기

javascript

괜찮은 온라인 퀴즈(quiz) 스크립트

<!--1. 아래의 스크립트를 <HEAD></HEAD>사이에 복사해 넣으세요-->

<script>
<!--
var name=prompt("이름을 입력하세요","")
// -->
</script>

<script language="JavaScript">

<!--
// Made By: Patrick Gormley, Lapeer East High School (patrickg@mail.si.umich.edu)
/*
*********************** Beginning of Comment Section ************

이 퀴즈 스크립트는 CGI 프로그램이 없이 스크립트 내에서 모두 작동합니다
각 문항들은 히든필드내에 있는 정답과 함께 모두 폼 내에 있습니다
폼 이름은 form1, form2.. 등으로 이름이 붙어 있습니다
아래의 샘플을 참고 하세요

                        <FORM ACTION="" METHOD=POST name=form1>
                           <P>
                        <INPUT TYPE=checkbox NAME=check VALUE=value>
                           <FONT COLOR="#0033FF"><B><STRONG>1.</STRONG></B></FONT><FONT COLOR="#FF0000"><B><STRONG>
                           </STRONG></B></FONT><FONT COLOR="#00CC00"><B><STRONG>
                        
                        Lapeer East 는 언제 오픈 했을까요?</STRONG></B> </FONT>
                        
                        <SELECT NAME=answer>
                              <OPTION VALUE=0>정답을 선택하세요
                              <OPTION VALUE=1>1976
                              <OPTION VALUE=2>1977
                              <OPTION VALUE=3>1978
                              <OPTION VALUE=4>1979
                              <OPTION VALUE=5>1980
                           </SELECT>
                        
                        <INPUT TYPE=hidden NAME=correct VALUE=1 size=4> // 정답항목은 4
                        
                        </FORM>
        
                        마지막 폼은 아래와 같은 형태여야 합니다.

                        <FORM ACTION="" METHOD=POST name=total>
                           <P><INPUT TYPE=button NAME=Button VALUE="Submit" onclick="quiz()">
                           <INPUT TYPE=button NAME=Button VALUE="Reload Quiz" onclick='parent.location="javascript:location.reload()"'><BR>
  
                           <HR>
  
                           <BR>
                           당신의 점수는 <INPUT TYPE=text NAME=score VALUE="" SIZE=5> out of
                           <INPUT TYPE=text NAME=outof VALUE="" SIZE=5> correct for a score
                           of: <INPUT TYPE=text NAME=percent VALUE="" SIZE=3> %<BR>
  
                           <HR>
  
                           <BR>
                           <BR>

                        </FORM>
                        
        
************************* End of Comment Section *****************************        
*/

function quiz() {
        var i = 0
                  var total=document.forms.length-1 // 총 질문 문항.  Last form is submit form
                  var ncorrect=0
                  var response=new Array(total)        
                  var theForms=new Array(total)
                  var answer=new Array(total)
                  
                //Collect Questions from document
                  for (i=1; i<=total;i++)
                                  theForms[i]=document.forms[i-1]
                  
                 //Collect responses to questions.
                  for (i=1; i <= total; i++)
                           response[i]=theForms[i].answer.selectedIndex  
                                                                                                                
                  
        // Collect correct answers from questions.  
                  for (i=1; i<=total;i++)
                                  answer[i]=theForms[i].correct.value
        
                  var flag=true        //assume all questions answered
                  for (i=1; i <= total; i++)
                           if (response[i]==0) {
                                                                                        alert("이런! #"+i+" 번을 빠뜨리셨네요")
                                                                                        flag=false
                                                                                        }
                                                                                   

                        if (flag) {
        
                                          for (i=1; i <= total; i++)
                                           if (response[i]==answer[i]) ncorrect++
                                                                                                                
                                
                document.total.score.value = ncorrect
                var per =  Math.round((ncorrect / total) * 100)
                document.total.percent.value = per
                                         document.total.outof.value=total
                                        
                                                for (i=1; i <= total; i++)
                                                   if (response[i]!=answer[i])    
                        theForms[i].check.checked = true
                                else theForms[i].check.checked = false
                                                                                                

                   } //end if (flag)
                                
}
// -->
                </script>


</HEAD>

<!--2. <BODY> 태그내에 onload="" 혹은 onunload 부분이 있으면 복사해 넣으세요-->

<BODY BGCOLOR="#FFFFFF">

<!--3. <BODY></BODY> 부분에 아래의 스크립트를 복사해 넣으세요-->

<TABLE align=center width=70% border=0>
<TR>
        <TD>
<center>
                        <h1><font color="#006600">온라인 퀴즈</font></h1>
                        <hr>
</center>

                <p> <h2>퀴즈에 응해 주셔서 감사합니다 <font color="#990066"><b>
<script language="Javascript">
<!--
document.write(name);
// -->
</script>
님</b></font>
</h2>
</p>


                <p> </p>
                <p>

                
                
                <form action="quiz.html" method="POST" name="form1">
                        
                 
                        <p><input type="checkbox" name="check" value="value"> <font color="#0033ff"><b><strong>1.</strong></b></font><font color="red"><b><strong> </strong></b></font><font color="#00cc00"><b><strong>광복절은 언제일까요?</strong></b> </font><select name="answer" size="1">
                        <option value="0">정답을 선택하세요
                        <option value="1">8월 15일
                        <option value="2">1월 1일
                        <option value="3">10월 3일
                        <option value="4">5월 5일
                        <option value="5">10월 9일
                </select><input type="hidden" name="correct" value="1" size="4">
                </form>


                <form action="quiz.html" method="POST" name="form2">
                        <p><input type="checkbox" name="check" value="value"> <font color="#0033ff"><b><strong>2.</strong></b></font><font color="#cc0000"><b><strong> </strong></b></font><font color="#ff6600"><b><strong>자스코의 영문 이름은 무엇일까요?</strong></b></font> <select name="answer" size="1">
                        <option value="0" selected>정답을 선택하세요
                        <option value="1">JASCO
                        <option value="2">JASKO
                        <option value="3">JUSCO
                        <option value="4">JUSKO
                        <option value="5">JOSKO
                </select><input type="hidden" name="correct" value="2" size="4">
                </form>
                
                
                
                <form action="quiz.html" method="POST" name="form3">
                        <p><input type="checkbox" name="check" value="value"><font color="red"> </font><font color="#0033ff"><b><strong>3.</strong></b></font><b><strong> </strong></b><font color="#009900"><b><strong>우리나라의 국기는?</strong></b></font> <select name="answer" size="1">
                        <option value="0" selected>정답을 선택하세요
                        <option value="1">태극기
                        <option value="2">태국기
                        <option value="3">일장기
                        <option value="4">성조기
                </select><input type="hidden" name="correct" value="1" size="4"></p>
                        <p>
                </form>
                
                
                <form action="quiz.html" method="POST" name="form4">
                        
                 
                        <p><input type="checkbox" name="check" value="value"><font color="#0033ff"><b>4.</b></font><b> </b><font color="#ff6600"><b>우리나라의 현직 대통령 이름은?</b> </font><select name="answer" size="1">
                        <option value="0">정답을 선택하세요
                        <option value="1">김용삼
                        <option value="2">전도환
                        <option value="3">노태호
                        <option value="4">김대중
                        <option value="5">이호창
                </select><input type="hidden" name="correct" value="4" size="4"></p>
                        <p>
                </form>
                
                
                <form action="quiz.html" method="POST" name="form5">
                        
                 
                        <p><font color="red"><input type="checkbox" name="check" value="value"></font><font color="#0033ff"><b>5.</b></font><font color="#009900"><b>다음중 국회의원의 직업이라 할수 있는 것은?</b></font> <select name="answer" size="1">
                        <option value="0">정답을 선택하세요
                        <option value="1">도둑놈
                        <option value="2">노숙자
                        <option value="3">정치꾼
                        <option value="4">도박꾼
                </select><input type="hidden" name="correct" value="3" size="4"></p>
                        <p>
                </form>
                
                
                
                <form action="quiz.html" method="POST" name="form6">
                        
                 
                        <p><input type="checkbox" name="check" value="value"><font color="#0033ff"><b>6.</b></font><b> </b><font color="#ff6600"><b>JASKO 에 점수를 준다면?</b></font> <select name="answer" size="1">
                        <option value="0">정답을 선택하세요
                        <option value="1">A0
                        <option value="2">A+
                        <option value="3">A++
                        <option value="4">A-
                        <option value="5">A--
                </select><input type="hidden" name="correct" value="3" size="4"></p>
                        <p>
                </form>
                
                
                
                <form action="quiz.html" method="POST" name="form7">
                        
                 
                        <p><input type="checkbox" name="check" value="value"><font color="#0033ff"><b>7.</b></font><font color="#009900"><b>미국에서 날리고 있는 대표적인 우리나라 야구선수는?</b> </font><select name="answer" size="1">
                        <option value="0">정답을 선택하세요
                        <option value="1">박찬호        
                        <option value="2">박세리
                        <option value="3">박지은
                        <option value="4">박지원
                        <option value="5">박중훈
                </select>
                <input type="hidden" name="correct" value="1" size="4"></p>
                        <p>
                </form>
                
                
                
                <form action="quiz.html" method="POST" name="form8">
                        
                 
                        <p><input type="checkbox" name="check" value="value"><font color="#0033ff"><b>8.</b></font><b> </b><font color="#ff6600"><b>다음중 야구와 관계된 사람이 아닌사람은?</b></font> <select name="answer" size="1">
                        <option value="0">정답을 선택하세요
                        <option value="1">이만수
                        <option value="2">김재박
                        <option value="3">송진우
                        <option value="4">선동열
                        <option value="5">강호동
                </select><input type="hidden" name="correct" value="5" size="4"></p>
                        <p>
                </form>
                
                
                
                <form action="quiz.html" method="POST" name="form9">
                        
                 
                        <p><input type="checkbox" name="check" value="value"><font color="#0033ff"><b>9.</b></font><b> <font color="#009900">우리나라의 애국가는 몇절까지 있을까요?</font></b><font color="#009900"> </font><select name="answer" size="1">
                        <option value="0">정답을 선택하세요
                        <option value="1">1절
                        <option value="2">2절
                        <option value="3">3절
                        <option value="4">4절
                </select><input type="hidden" name="correct" value="4" size="4"></p>
                        <p>
                </form>
                
                
                
                <form action="quiz.html" method="POST" name="form10">
                        
                 
                        <p>
                        <input type="checkbox" name="check" value="value">
                        <font color="#0033ff"><b>10.</b></font><font color="#ff6600">
                        <b>다음중 가수가 아닌사람은?</b></font>
                        
                        <select name="answer" size="1">
                        <option value="0">정답을 선택하세요
                        <option value="1">김수희
                        <option value="2">심은하
                        <option value="3">나훈아
                        <option value="4">HOT
                        <option value="5">SES
                </select>
                
                <input type="hidden" name="correct" value="2" size="4"></p>
                        <p>
                </form>
                
                
                
                <form action="quiz.html" method="POST" name="total">
                        
                 
                        <p align=center><input type="button" name="Button" value="다풀었어요" onclick="quiz()">
                        <input type="button" name="Button" value="다시풀께요" onclick='parent.location="javascript:location.reload()"'><br>
                        <hr>
                <br>
                <font color="#990066"><b>
                
                
                
                <script language="Javascript">
                <!--
                document.write(name);
                // -->
                </script>


                </b></font>님은 <input type="text" name="outof" size="5"> 문제 중 <input type="text" name="score" size="5"> 개를 맞추셨네요. <input type="text" name="percent" size="3"> % 를 득점 하셨습니다<br>
                <hr>
                <br>
                        <br>
                        


                </form>