单选按钮/复选框

时间:2016-07-06 13:13:33

标签: php html

我不确定如何说出标题,因为只是想到这个概念让我感到困惑,我不知道为什么。我确信有一些简单的解决方案。

这是我的代码(下面附件)输出的图片。 enter image description here

用户应该能够在每个盒子里面点击1个radiobox,但我似乎无法做到这一点。现在的方式,只能选择1个度假按钮,只能选择1个缺席按钮。

这是我的代码:

if($loop < 4) {

    echo '<td>';

    echo '  NAME<BR><input type="radio" name="vacationTeammates[]" value="'.$value[0].'">Vacation<br>
            <input type="radio" name="absentTeammates[]" value="'.$value[0].'">Absent';

    echo '</td>';

    $loop++;
} else {
    $loop = 1;
    echo "</tr><tr align='center'>";

    echo '<td>';

    echo '  NAME<BR><input type="radio" name="vacationTeammates[]" value="'.$value[0].'">Vacation<br>
            <input type="radio" name="absentTeammates[]" value="'.$value[0].'">Absent';

    echo '</td>';

}

(循环使表格行结束并开始一个新的,所以它有点无关紧要,但单选按钮是重要的)

3 个答案:

答案 0 :(得分:1)

每个单选按钮对必须具有相同的“名称”属性值,以便浏览器知道它们是自己的集合。

将您的代码更改为类似的内容,其中“$ SomeUniqueRowVar”是为每行更改的变量:

echo 'NAME<BR>';
echo '<input type="radio" name="status'.$SomeUniqueRowVar.'" value="vacation">';
echo 'Vacation<br>';
echo '<input type="radio" name="status'.$SomeUniqueRowVar.'" value="absent">';
echo 'Absent';

答案 1 :(得分:1)

我会添加一个计数器并将每个名称分配给特定的数组元素,而不仅仅是[]。由于您只希望为每个队友选择一个无线电,因此输入必须是相同的名称,但具有不同的值。将队友名称放在一个数组(一个与无线电输入分开的变量)中,该数组使用计数器作为它的索引。通过这种方式,您可以了解哪个响应属于哪个队友。

if($loop < 4) {
    $name[$counter] = $value[0];
    echo '<td>';
    echo '  NAME<BR><input type="radio" name="teammates[$counter]" value=1>Vacation<br>
            <input type="radio" name="teammates[$counter]" value=0>Absent';
    echo '</td>';
    $counter++;
    $loop++;
} else {
    $name[$counter] = $value[0];
    $loop = 1;
    echo "</tr><tr align='center'>";
    echo '<td>';
    echo '  NAME<BR><input type="radio" name="teammates[$counter]" value=1>Vacation<br>
            <input type="radio" name="teammates[$counter]" value=0>Absent';
    echo '</td>';
    $counter++;
}

现在当你处理数组时,你会知道队友[$ counter]是1还是1表示休假,0表示缺席。

如果您可以确定它没有特殊字符/安全地解析特殊字符,您也可以选择使用名称作为索引。

答案 2 :(得分:0)

谢谢@ user3163495&amp; @FirstOne提供了我在答案中使用的一些提示。

我让每个单元格中的两个单选按钮具有相同的名称,而其他所有按钮的名称都不同。

        if($loop < 4) {

            echo '<td>';

            echo '  <input type="radio" name="goneTeammates['.$uniqueLoop.']" value="'.$value[0].'|V">Vacation<br>
                    <input type="radio" name="goneTeammates['.$uniqueLoop.']" value="'.$value[0].'|A">Absent<br>NAME';

            echo '</td>';

            $loop++;
        } else {
            $loop = 1;
            echo "</tr><tr align='center'>";

            echo '<td>';

            echo '  <input type="radio" name="goneTeammates['.$uniqueLoop.']" value="'.$value[0].'|V">Vacation<br>
                    <input type="radio" name="goneTeammates['.$uniqueLoop.']" value="'.$value[0].'|A">Absent<br>NAME';

            echo '</td>';

        }

对于价值,我使用队友的名字(实际上是他们的uniqueid)和A用于缺席或V用于度假。输出基本上如下:

35 | A

23 | V

64 | A

在处理方面我explode()输入|个符号的输入,基本上得到独立变量中的唯一ID和字母,然后从那里开始处理。