我不确定如何说出标题,因为只是想到这个概念让我感到困惑,我不知道为什么。我确信有一些简单的解决方案。
用户应该能够在每个盒子里面点击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>';
}
(循环使表格行结束并开始一个新的,所以它有点无关紧要,但单选按钮是重要的)
答案 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和字母,然后从那里开始处理。