<form action="data.php" method="post">
<table id="strength_table" border="1" width="980">
<tr>
<td><p> 1. </p></td>
<td><label> I am cool</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 -->
<tr>
<td><p> 2. </p></td>
<td><label> I am awsome </label></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><!-- 12 -->
<tr>
<td><p> 3. </p></td>
<td><label> I am worry </label></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><!-- 13 -->
<tr>
<td><p> 4. </p></td>
<td><label> I am fear </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><p> 5. </p></td>
<td><label> I am happy </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 -->
</form>
我的目的是让我所有的问题都得到确认和验证,我知道如何做一些带有验证的无线电,但是循环怎么样?因为我有 100 个问题很难像这样一一做。
下面是一个javascript和php验证的例子。javascript 提交表单事件,并在并非所有问题都得到回答时显示警报。如果回答了所有问题,则会在表单中添加一个包含所有问题的输入字段。您可以在 PHP 中使用此输入字段在data.php
中创建 PHP 检查。如果您使用下面的示例,请不要忘记将 id answerForm
添加到表单中。
<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");
}
else
{
$(this).prepend('<input type="hidden" name="allQuestions" value="'+questions.join(",")+'"/>')
}
});
</script>
在您的data.php
中,您可以使用如下所示的内容:
<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");
}
else
{
$(this).prepend('<input type="hidden" name="allQuestions" value="'+questions.join(",")+'"/>')
}
});
</script>
请注意,这仍然是 100% 安全的,因为客户端会确定哪些输入是"必需的"。如果要在服务器端执行此操作,则应将生成的问题的名称属性保存在SESSION中。然后,您可以将会话名称输入与提交的输入进行比较。
编辑
如果手动创建表单,则可以手动将名称字段添加到会话中。你会得到这样的东西:
<form action="data.php" method="post">
<table id="strength_table" border="1" width="980">
<tr>
<td><p> 1. </p></td>
<td><label> I am cool</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>
<?php $_SESSION['allQuestions']['Dquestion[1]']; ?>
</tr><!-- 11 -->
<tr>
<td><p> 2. </p></td>
<td><label> I am awsome </label></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>
<?php $_SESSION['allQuestions']['Iquestion[1]']; ?>
</tr><!-- 12 -->
<tr>
<td><p> 3. </p></td>
<td><label> I am worry </label></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>
<?php $_SESSION['allQuestions']['Hquestion[1]']; ?>
</tr><!-- 13 -->
<tr>
<td><p> 4. </p></td>
<td><label> I am fear </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>
<?php $_SESSION['allQuestions']['Aquestion[1]']; ?>
</tr><!-- 14 -->
<tr>
<td><p> 5. </p></td>
<td><label> I am happy </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>
<?php $_SESSION['allQuestions']['Aquestion[1]']; ?>
</tr><!-- 15 -->
</form>
您可以使用与我上面示例相同的 PHP 代码。还要确保规则session_start()
位于每个页面的顶部,否则您的会话将无法正常工作。
我不确定你的意思
我的目的是让我所有的问题都得到确认和验证
但是如果你只需要从代码中创建一个循环,你可以这样做:
<form action="data.php" method="post">
<table id="strength_table" border="1" width="980">
<tr>
<td><p> 1. </p></td>
<td><label> I am cool</label></td>
<?php for($i=1; $i<=10; $i++) { ?><td><input type="radio" name="Dquestion[1]" value="1"> <?=$i?> </td><?php } ?>
</tr><!-- 11 -->
<tr>
<td><p> 2. </p></td>
<td><label> I am awesome </label></td>
<?php for($i=1; $i<=10; $i++) { ?><td><input type="radio" name="Iquestion[1]" value="1"> <?=$i?> </td><?php } ?>
</tr><!-- 12 -->
<tr>
<td><p> 3. </p></td>
<td><label> I am worry </label></td>
<?php for($i=1; $i<=10; $i++) { ?><td><input type="radio" name="Hquestion[1]" value="1"> <?=$i?> </td><?php } ?>
</tr><!-- 13 -->
<tr>
<td><p> 4. </p></td>
<td><label> I am fear </label></td>
<?php for($i=1; $i<=10; $i++) { ?><td><input type="radio" name="Aquestion[1]" value="1"> <?=$i?> </td><?php } ?>
</tr><!-- 14 -->
<tr>
<td><p> 5. </p></td>
<td><label> I am happy </label></td>
<?php for($i=1; $i<=10; $i++) { ?><td><input type="radio" name="Dquestion[2]" value="1"> <?=$i?> </td><?php } ?>
</tr><!-- 15 -->
</form>
或者你可以做一个双循环,甚至更生硬:
<form action="data.php" method="post">
<table id="strength_table" border="1" width="980">
<?php
$arr1 = array("Dquestion[1]", "Iquestion[1]", "Hquestion[1]", "Aquestion[1]", "Dquestion[2]");
$arr2 = array("I am cool", "I am awesome", "I am worry", "I am fear", "I am happy");
for($j=0; $j<5; $j++) { ?>
<tr>
<td><p> <?=$j?>. </p></td>
<td><label> <?=$arr2[$j]?></label></td>
<?php for($i=1; $i<=10; $i++) { ?><td><input type="radio" name="<?=$arr1[$j]?>" value="1"> <?=$i?> </td><?php } ?>
</tr>
<?php } ?>
</form>
附言我冒昧地纠正了"真棒"中的"awsome"。对不起,这是我的烦恼。