2012-03-28 5 views
0

잘 작동하는 양식이 있습니다. 나는 잘 작동하는 퀴즈를 가지고있다.PHP 폼을 사용하여 퀴즈 답을 보내기

내가 두가 작동하지 않는 통합 할 때 잘 :(

퀴즈 퀴즈로 작동하지만 실 거예요 내 이메일 주소로 PHP를 사용하여 발송. 여기

는 약간의 내 코드 :

<head> 
     <script> 
     CorrectAnswers = new Array(); 
     CorrectAnswers[0]=1; 
     CorrectAnswers[1]=1; 
     CorrectAnswers[2]=1; 
     CorrectAnswers[3]=2; 

     macrightchar='YES'; 
     macwrongchar='NO'; 
     winrightchar='YES'; 
     winwrongchar='NO'; 

     var platform = 'win' 
     if (navigator.appVersion.indexOf('Mac') != -1) {platform = 'mac'} 
     if (platform == 'mac') { 
      rightchar = unescape(macrightchar) 
      wrongchar = unescape(macwrongchar) 
     } 
     else { 
      rightchar = unescape(winrightchar) 
      wrongchar = unescape(winwrongchar) 
     } 

     function CheckAnswer(){ 
      var i = 0; 
      var TotalCorrect = 0; 
      var x = 0; 
      var Score = 0; 

      for (i=0; i<CorrectAnswers.length; i++){ 
       if (document.QuizForm.elements[i*2].selectedIndex == CorrectAnswers[i]){ 
        document.QuizForm.elements[(i*2)+1].value = rightchar; 
        TotalCorrect++; 
       } 
       else{ 
        document.QuizForm.elements[(i*2)+1].value = wrongchar; 
       } 
      } 
       Score = Math.floor((TotalCorrect*100)/CorrectAnswers.length); 
       document.CheckForm.ScoreBox.value = Score + '%'; 
     } 
    </script> 
    </head> 
    <body> 
    <form name="QuizForm" accept-charset="utf-8" method="post" action="forms/quiz/_process.php" onSubmit="return validate.check(this)"> 
     <table class="widthOneHundredPercent"> 

     <tr> 
     <td class="tableCellFloat columnOne" valign="top"> 
     <label for="Big_Media_offers_a_great_multiplatform_tool">Big Media offers a great multiplatform tool</label> 
     </td> 
     <td class="tableCellFloat columnTwo" valign="top"> 
     <select name="0"> 
     <option>???</option> 
     <option>True</option> 
     <option>False</option> 
     </select> 
     <td valign=top> 
     <input type="text" name="1" size=2 maxlength=2> 
     </td> 
     </td> 
     </tr> 

    <tr> 
    <FORM name="CheckForm"> 
     <td align="center"> 
     <font face="Geneva,Arial"><input type="button" VALUE="Check" onClick="CheckAnswer()"> Your score is <input type=text name="ScoreBox" size="4" maxlength="4"></font> 
     <center><input type="submit" value="Submit Form" /></center> 
     </form> 

가 quiz.php하는 quiz.php에서 주소 표시 줄에 내 파일 이름의 끝을 변경됩니다 누르면 제출하면 ScoreBox = 75 % 25 내 정답과 오답을합니다 그래서?. .

체크 점수를 클릭 할 때 라이브 오른쪽 및 잘못된 답변을 표시하려면 퀴즈가 필요하지만 PHP를 사용하여 결과를 보내야합니다.

내가 완전히 잘못 될 가능성이 있다면 누군가가 나를 올바른 방향으로 향하게 할 수 있습니다.

감사합니다.

+0

PHP 빌드에서 전자 메일을 보낼 수 있습니까? –

+0

예, 유료 시스템이므로 여기에 코드를 추가하지 마십시오. –

+0

당신은 php에 문제가 있습니다 (폼을 사용하지 않고 결과를 보여주는 것).하지만 자바 스크립트와 html은 모두 – mishu

답변

1

몇 가지 내가 여기주의 사항 :

  • QuizForm

    가 제출 버튼이 없으며 (단지 표시되지 않을 수 있습니다) 동적으로 제출 나타나지 않습니다. 아마도이 양식과 CheckForm을 결합 할 수 있습니다.
  • CheckForm에 정의 된 method이 없으므로 제출에서 쿼리 문자열을 넣습니다.
  • 원시 응답 대신 점수가 제출됩니다. 아마도 이것은 바람직한 행동이지만 누군가 제출하면 훌륭한 점수를받을 수있는 능력을 남깁니다.

응답은 제출 버튼을 CheckForm에서 QuizForm으로 이동하는 것처럼 간단 할 수 있습니다.

+0

환상적인 장소. 이것은 내가 뭘 찾고 있었는지. 그것은 실제로, 또는 아주 비슷합니다. 나는 그것을 변경하고 작동하지 않았다,하지만 그때 나는 두 가지 양식을 가지고 왜 자신에게 물어, 하나는 제출 버튼 그리고 하나의 퀴즈. 나는 그것을 모두 하나의 양식으로 만들었지 만 지금은 효과가있다. 그러나 폼 네임의 변경을 지적했기 때문에 그것을 이해했다. 대단히 감사합니다. 퀴즈가 최고가 아니며 그것을 바꿀 수도 있다는 것을 이해합니다. 지금은 어쨌든 작동하는 한 더 복잡한 작업을 진행할 수 있습니다. 다시 한 번 감사드립니다! –

1

'CheckForm'을 열기 전에 'QuizForm'에 대해 닫는 <form> 태그를 추가해보십시오.

[편집] 사실, QuizForm에는 제출 방법이없는 것 같습니다.

+0

Hi grim, yes good spot, 나는 이미 하나를 가지고있다. 그러나 나는 단지 퀴즈의 발췌 문장을 복사했고 wholee 퀴즈는 복사하지 않았다. 나는 바보 같은 것을 추가하는 것을 멍청하게 잊었다. 나는 내가 테이블과 양식을 닫았 음을 확신 할 수있다. :(감사합니다. –

관련 문제