<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>
я хотел убедиться, что пользователь нажал на все вопросы, как я это сделаю? я хотел, чтобы они отвечали на все вопросы, если они ответили на все, и нажмите кнопку «Отправить», это не сработает. Как я могу использовать php или JavaScript для этого?
Прежде всего, убедитесь, что вы связаны с вашими полями ввода. Например, первое поле ввода вопроса 2 имеет имя I1
а следующее – имя Iquestion[1]
. Удостоверьтесь, что они имеют одинаковую структуру, вы получите что-то вроде этого:
<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. Здесь вы можете проверить, сколько разных радиовходов есть и сколько представлено. С помощью этого knowlegde можно сравнить эти значения и на основе результата вы можете пройти с представлением или показать 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, если все ответы заполнены.
вам не нужно использовать JQuery, вы можете просто использовать javascript:
<td><input type="radio" onclick="q1 = true; func()" onselect="func()" name="Dquestion[1]" value="1"> 1 </td>
Просто добавьте функцию onclick для каждого из ваших переключателей
<body onload = "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; }; }; }; }
теперь вам просто нужно помещать 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
потому что ваша форма направляется на data.php, и вы публикуете все значения в форме
if ($_POST['Dquestion[1]'] == null){ echo "<script language=javascript> window.location='quiz.html';</script>";
} здесь вы проверяете, является ли Dquestion [1] пустым, если он перенаправит вас на quiz.html. не уверен, правильно ли php, потому что я не могу проверить его прямо сейчас, потому что на работе