2012-03-28 24 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版本可以發送郵件嗎? – 2012-03-28 11:46:20

+0

是的,這是一個付費系統,所以我寧願不在這裏添加代碼。 – 2012-03-28 11:48:52

+0

你有一個PHP問題(發送電子郵件,不使用表單或顯示結果),但我們在這裏可以看到的所有內容都是javascript和html – mishu 2012-03-28 11:49:40

回答

1

幾件事我注意到這裏:

  • QuizForm沒有一個提交按鈕並沒有出現被動態提交(可能只是不顯示)。也許這種形式和CheckForm可以合併。
  • CheckForm沒有一個method定義,這就是爲什麼提交穿上它
  • 比分被提交而不是原始的答案查詢字符串。也許這是期望的行爲,但它留下了某人提交的能力,他們得到了很高的分數。

答案可能與將提交按鈕從CheckForm移動到QuizForm一樣簡單。

+0

很棒的地方,這是我一直在尋找的東西,它的確是或者非常相似,我改變了它並且沒有起作用,但後來我問自己爲什麼我有兩種形式,一種包含提交按鈕和一個測驗,我把它做成了一種形式,現在它已經可以工作了,但是我明白了,因爲你指出了表單名稱的變化,非常感謝:)我明白我的測驗不是最好的,可能會改變它無論如何,但只要它有效,我可以繼續使它更復雜。再次感謝! – 2012-03-28 12:43:50

1

嘗試在打開'CheckForm'之前,爲'QuizForm'添加結束<form>標記。

實際上,QuizForm似乎沒有提交方法。

+0

嗨,很好,現在我已經有了一個,但是我只複製了一小段測驗,而不是全部測驗,我愚蠢地忘了補充底部位。我可以向你保證我已經關閉了桌子和表格。 :(謝謝。 – 2012-03-28 12:12:10