2012-03-28 7 views
0

うまく動作するフォームがあります。私はうまく動作するクイズを持っています。PHPフォームを使って質問を送る

私は2つは、彼らが罰金:(

クイズはクイズとして動作しますが、それは文句を言わない私のメールアドレスに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の問題があります(フォームを使用したり結果を表示しないでメールを送信しています)が、ここで見ることができるのはjavascriptとhtmlです – mishu

答えて

1

いくつかのこと:

  • QuizFormは、送信ボタンを持っていないと(単に表示されない場合があります)を動的に提出されていないよう。おそらくこのフォームとCheckFormを組み合わせることができます。
  • CheckFormにはmethodが定義されていません。そのため、サブミッションはクエリ文字列をそれに置きます。
  • 未処理の回答ではなくスコアが提出されています。おそらくこれは望ましい行動ですが、それは誰かのために素晴らしいスコアを出しただけの能力を残します。

回答は、送信ボタンをCheckFormからQuizFormに移動するのと同じくらい簡単です。

+0

ファンタスティックスポット。これは私が探していたものです。それは本当に、または非常に似ていました。私はそれを変更し、それは動作しませんでしたが、 1つはクイズですが、私はそれを1つのフォームにしていますが、現在は機能していますが、フォーム名の変更を指摘したので、それを理解しました。今はとにかくそれが働く限り、私はそれをより複雑にすることができます。再度、感謝します! –

1

'CheckForm'を開く前に、 'QuizForm'の終了タグ<form>を追加してみてください。

[編集]実際には、QuizFormはサブミットメソッドを持っていないようです。私はここに気づく

+0

こんにちは、あまり良い、私はすでに1つ持っているが、私はクイズのスニペットをコピーし、全体クイズではないので、私は愚かに底のビットを追加することを忘れてしまった。私はあなたがテーブルとフォームを閉じたことを保証することができます。 :(ありがとう。 –

関連する問題