2014-12-08 261 views
0
<html> 

<head> 
</head> 

// how to make them checked all question ?? 
<form method="post" action="data.php"> 
<table> 
<tr> 
       <td><label> I am a high achiever. </label></td> 
       <td><input type="radio" name="Dquestion[1]" value="1"> 1 </td> 
       <td><input type="radio" name="Dquestion[1]" value="2"> 2 </td> 
       <td><input type="radio" name="Dquestion[1]" value="3"> 3 </td> 
       <td><input type="radio" name="Dquestion[1]" value="4"> 4 </td> 
       <td><input type="radio" name="Dquestion[1]" value="5"> 5 </td> 
       <td><input type="radio" name="Dquestion[1]" value="6"> 6 </td> 
       <td><input type="radio" name="Dquestion[1]" value="7"> 7 </td> 
       <td><input type="radio" name="Dquestion[1]" value="8"> 8 </td> 
       <td><input type="radio" name="Dquestion[1]" value="9"> 9 </td> 
       <td><input type="radio" name="Dquestion[1]" value="10"> 10 </td> 
      </tr><!-- 11 --> 
<td>question2</td> 
<td><input type="radio" name="I1" value="1"> 1 </td> 
       <td><input type="radio" name="Iquestion[1]" value="2"> 2 </td> 
       <td><input type="radio" name="Iquestion[1]" value="3"> 3 </td> 
       <td><input type="radio" name="Iquestion[1]" value="4"> 4 </td> 
       <td><input type="radio" name="Iquestion[1]" value="5"> 5 </td> 
       <td><input type="radio" name="Iquestion[1]" value="6"> 6 </td> 
       <td><input type="radio" name="Iquestion[1]" value="7"> 7 </td> 
       <td><input type="radio" name="Iquestion[1]" value="8"> 8 </td> 
       <td><input type="radio" name="Iquestion[1]" value="9"> 9 </td> 
       <td><input type="radio" name="Iquestion[1]" value="10"> 10 </td> 
</tr> 
<tr> 
<td>question3</td> 
    <td><input type="radio" name="H1" value="1"> 1 </td> 
       <td><input type="radio" name="Hquestion[1]" value="2"> 2 </td> 
       <td><input type="radio" name="Hquestion[1]" value="3"> 3 </td> 
       <td><input type="radio" name="Hquestion[1]" value="4"> 4 </td> 
       <td><input type="radio" name="Hquestion[1]" value="5"> 5 </td> 
       <td><input type="radio" name="Hquestion[1]" value="6"> 6 </td> 
       <td><input type="radio" name="Hquestion[1]" value="7"> 7 </td> 
       <td><input type="radio" name="Hquestion[1]" value="8"> 8 </td> 
       <td><input type="radio" name="Hquestion[1]" value="9"> 9 </td> 
       <td><input type="radio" name="Hquestion[1]" value="10"> 10 </td> 
</tr> 
<tr> 
       <td><label> question4 </label></td> 
       <td><input type="radio" name="Aquestion[1]" value="1"> 1 </td> 
       <td><input type="radio" name="Aquestion[1]" value="2"> 2 </td> 
       <td><input type="radio" name="Aquestion[1]" value="3"> 3 </td> 
       <td><input type="radio" name="Aquestion[1]" value="4"> 4 </td> 
       <td><input type="radio" name="Aquestion[1]" value="5"> 5 </td> 
       <td><input type="radio" name="Aquestion[1]" value="6"> 6 </td> 
       <td><input type="radio" name="Aquestion[1]" value="7"> 7 </td> 
       <td><input type="radio" name="Aquestion[1]" value="8"> 8 </td> 
       <td><input type="radio" name="Aquestion[1]" value="9"> 9 </td> 
       <td><input type="radio" name="Aquestion[1]" value="10"> 10 </td> 
     </tr><!-- 14 --> 
<tr> 
       <td><label> I am strong willed. </label></td> 
       <td><input type="radio" name="Dquestion[2]" value="1"> 1 </td> 
       <td><input type="radio" name="Dquestion[2]" value="2"> 2 </td> 
       <td><input type="radio" name="Dquestion[2]" value="3"> 3 </td> 
       <td><input type="radio" name="Dquestion[2]" value="4"> 4 </td> 
       <td><input type="radio" name="Dquestion[2]" value="5"> 5 </td> 
       <td><input type="radio" name="Dquestion[2]" value="6"> 6 </td> 
       <td><input type="radio" name="Dquestion[2]" value="7"> 7 </td> 
       <td><input type="radio" name="Dquestion[2]" value="8"> 8 </td> 
       <td><input type="radio" name="Dquestion[2]" value="9"> 9 </td> 
       <td><input type="radio" name="Dquestion[2]" value="10"> 10 </td> 

      </tr><!-- 15 --> 
<tr> 
<td colspan=2> 
<div align="center"><input type="submit" name="submit" value="Score my test"></div> 
</td> 
</tr> 
</table> 
</form> 
</html> 

我想確保用戶點擊所有問題,我該怎麼做?我想他們回答所有問題,如果他們沒有回答所有問題,點擊提交按鈕它不會work.do我一些如何使用PHP或JavaScript來做到這一點?測驗網頁檢查所有答案

+0

使用PHP!使用可選的JavaScript來禁用如果不是所有的無線電設備進行檢查提交... – donald123 2014-12-08 09:46:33

+0

可以使用js中檢查屬性 – 2014-12-08 09:48:03

+0

[JavaScript表單驗證]可能重複(http://stackoverflow.com/questions/15088538/javascript-form-validation) – RichardBernards 2014-12-08 09:51:05

回答

0

首先,確保您的輸入字段是相應的。例如。問題2的第一個輸入字段的名稱爲I1,而下一個的名稱爲Iquestion[1]。確保他們都相同的結構,你會得到somethink這樣的:

<form method="post" action="data.php" id="answerForm"> 
    <table> 
     <tr> 
      <td><label> I am a high achiever. </label></td> 
      <td><input type="radio" name="Dquestion[1]" value="1"> 1 </td> 
      <td><input type="radio" name="Dquestion[1]" value="2"> 2 </td> 
      <td><input type="radio" name="Dquestion[1]" value="3"> 3 </td> 
      <td><input type="radio" name="Dquestion[1]" value="4"> 4 </td> 
      <td><input type="radio" name="Dquestion[1]" value="5"> 5 </td> 
      <td><input type="radio" name="Dquestion[1]" value="6"> 6 </td> 
      <td><input type="radio" name="Dquestion[1]" value="7"> 7 </td> 
      <td><input type="radio" name="Dquestion[1]" value="8"> 8 </td> 
      <td><input type="radio" name="Dquestion[1]" value="9"> 9 </td> 
      <td><input type="radio" name="Dquestion[1]" value="10"> 10 </td> 
     </tr><!-- 11 --> 
     <td>question2</td> 
      <td><input type="radio" name="Iquestion[1]" value="1"> 1 </td> 
      <td><input type="radio" name="Iquestion[1]" value="2"> 2 </td> 
      <td><input type="radio" name="Iquestion[1]" value="3"> 3 </td> 
      <td><input type="radio" name="Iquestion[1]" value="4"> 4 </td> 
      <td><input type="radio" name="Iquestion[1]" value="5"> 5 </td> 
      <td><input type="radio" name="Iquestion[1]" value="6"> 6 </td> 
      <td><input type="radio" name="Iquestion[1]" value="7"> 7 </td> 
      <td><input type="radio" name="Iquestion[1]" value="8"> 8 </td> 
      <td><input type="radio" name="Iquestion[1]" value="9"> 9 </td> 
      <td><input type="radio" name="Iquestion[1]" value="10"> 10 </td> 
     </tr> 
     <tr> 
     <td>question3</td> 
      <td><input type="radio" name="Hquestion[1]" value="1"> 1 </td> 
      <td><input type="radio" name="Hquestion[1]" value="2"> 2 </td> 
      <td><input type="radio" name="Hquestion[1]" value="3"> 3 </td> 
      <td><input type="radio" name="Hquestion[1]" value="4"> 4 </td> 
      <td><input type="radio" name="Hquestion[1]" value="5"> 5 </td> 
      <td><input type="radio" name="Hquestion[1]" value="6"> 6 </td> 
      <td><input type="radio" name="Hquestion[1]" value="7"> 7 </td> 
      <td><input type="radio" name="Hquestion[1]" value="8"> 8 </td> 
      <td><input type="radio" name="Hquestion[1]" value="9"> 9 </td> 
      <td><input type="radio" name="Hquestion[1]" value="10"> 10 </td> 
     </tr> 
     <tr> 
      <td><label> question4 </label></td> 
      <td><input type="radio" name="Aquestion[1]" value="1"> 1 </td> 
      <td><input type="radio" name="Aquestion[1]" value="2"> 2 </td> 
      <td><input type="radio" name="Aquestion[1]" value="3"> 3 </td> 
      <td><input type="radio" name="Aquestion[1]" value="4"> 4 </td> 
      <td><input type="radio" name="Aquestion[1]" value="5"> 5 </td> 
      <td><input type="radio" name="Aquestion[1]" value="6"> 6 </td> 
      <td><input type="radio" name="Aquestion[1]" value="7"> 7 </td> 
      <td><input type="radio" name="Aquestion[1]" value="8"> 8 </td> 
      <td><input type="radio" name="Aquestion[1]" value="9"> 9 </td> 
      <td><input type="radio" name="Aquestion[1]" value="10"> 10 </td> 
     </tr><!-- 14 --> 
     <tr> 
      <td><label> I am strong willed. </label></td> 
      <td><input type="radio" name="Dquestion[2]" value="1"> 1 </td> 
      <td><input type="radio" name="Dquestion[2]" value="2"> 2 </td> 
      <td><input type="radio" name="Dquestion[2]" value="3"> 3 </td> 
      <td><input type="radio" name="Dquestion[2]" value="4"> 4 </td> 
      <td><input type="radio" name="Dquestion[2]" value="5"> 5 </td> 
      <td><input type="radio" name="Dquestion[2]" value="6"> 6 </td> 
      <td><input type="radio" name="Dquestion[2]" value="7"> 7 </td> 
      <td><input type="radio" name="Dquestion[2]" value="8"> 8 </td> 
      <td><input type="radio" name="Dquestion[2]" value="9"> 9 </td> 
      <td><input type="radio" name="Dquestion[2]" value="10"> 10 </td> 
     </tr><!-- 15 --> 
     <tr> 
      <td colspan="2"> 
      <div align="center"><input type="submit" name="submit" value="Score my test"></div> 
      </td> 
     </tr> 
    </table> 
</form> 

另外請注意,我添加了一個id到窗體。我們需要使用它來捕捉submit事件。對於事件處理,您可以使用AJAX。在這裏你可以檢查有多少個不同的無線電輸入以及有多少個提交。有了這個知識,就可以比較這些值,並根據結果進行提交或顯示alert(或任何其他類型的消息)。爲了趕上submit事件,並確定後續行動,你可以使用這樣的事情:

<script src="http://code.jquery.com/jquery-1.11.1.min.js"></script> 
<script> 

    $(document).on('submit', '#answerForm',function(e) 
    {  
     var data    = $(this).serializeArray(); 
     var questions   = new Array(); 
     var questionsCounter = 0; 

     $.each($('input[type="radio"]'), function() 
     { 
      if(questions.indexOf($(this).attr('name')) == -1) 
      { 
       questions.push($(this).attr('name')); 
       questionsCounter++; 
      }   
     }); 

     if(questionsCounter != data.length) 
     { 
      e.preventDefault(); 
      alert("You did not answer all questions"); 
     }  

    }); 

</script> 

注意,這是客戶端,並且不保存,因爲客戶端腳本可以被操縱。你應該只將它用於可用的目的,並且如果所有答案都已填充,那麼還要在PHP腳本中創建一個檢查。

+0

真的需要Jquery來做到這一點嗎?它可以是純粹的PHP?以及我只是想注意到他們,但你的想法是很酷,我學到了很多。謝謝你 – 2014-12-08 10:58:59

+0

如何使鏈接到其他網站時填充?我填滿了,它仍然說你沒有回答所有問題。 – 2014-12-08 11:01:55

+0

真的嗎?這很奇怪。你確定你的html表是正確的嗎?你一直使用相同的'name'屬性?如果你在我的答案中嘗試了這個表單,那該怎麼辦? – 2014-12-08 14:59:17

0

你不需要使用jQuery,你可以使用JavaScript:

<td><input type="radio" onclick="q1 = true; func()" onselect="func()" name="Dquestion[1]" value="1"> 1 </td> 

只需添加的onclick功能爲每個單選按鈕

<body onload = "go()"> 

啓動功能go的當人體加載(這將設置提交按鈕禁用)

<script type="text/javascript"> 


var q1 = false; 
var q2 = false; 
var q3 = false; 
var q4 = false; 
var q5 = false; 
    function go(){ 
     document.getElementById("submit").disabled = true; 
    } 

function func() { 
    if (q1 == true && q2 == true && q3 == true && q4 == true && q5 == true) { 
     document.getElementById("submit").disabled = false; 
    }; 
} 
</script> 

現在添加每個問題的變量,它檢查是否所有的「q」變量都是真的,如果他們提交將會啓用

=================== ==============

編輯

,你仍然需要說每一個陣列是假的你可以使用一個數組,那麼你的腳本應該是這樣的:

var q = [false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false]; 
var tru = 0; 
    function go(){ 
     document.getElementById("submit").disabled = true; 
    } 

function func() { 
    for (var i = 0; i < q.length; i++) { 
     if (q[i] == true) { 
      tru++; 
      if (tru == q.length) { 
       document.getElementById("submit").disabled = false; 
      }; 
     }; 
    }; 
} 

現在你只需要你有問題,把假的數組中的許多倍,單選按鈕,看起來像這樣

<td><input type="radio" onclick="q[0] = true; func()" name="Dquestion[1]" value="1"> 1 </td> 

onclick="q[0] = true; func()" 

q索引問題編號 - 1,所以問題1的索引爲0等...

================= ================

編輯

如果單選按鈕都在PHP檢查了data.php因爲你的形式引導到數據您可以檢查。PHP和您發佈的形式

if ($_POST['Dquestion[1]'] == null){ 
    echo "<script language=javascript> window.location='quiz.html';</script>"; 

} 在這裏,你是否Dquestion [1]爲空,如果是,將您重定向到quiz.html所有值。 不知道,如果PHP是完全正確的因爲我不能在工作檢查它現在cuz即時

出於安全方面
+0

因爲我有100問題的測驗,如果我使用這種方式我需要q1-q100,並且我將所有設置爲true?我應該使用循環嗎? – 2014-12-08 12:27:01

+0

做它與PHP? – 2014-12-09 10:31:21

+0

你可以使用POST方法,但是你會被重定向到另一個頁面,然後重定向回去,所以這樣做有點無用。但要檢查它,你可以通過下面的方法來檢查它:if($ _POST ['test']!= null) 其中test是一個複選框的名稱,在這裏你檢查測試是否有值,但你必須這樣做每個單獨的問題再次 – DubstepsantaHD 2014-12-09 12:09:19