我将如何使我所有的无线电检查和循环验证


how i going to make all my radio checked and Validation with loop?

<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"。对不起,这是我的烦恼。