假设没有电话号码重复,最简单的方法是将每个复选框的值设置为其关联的电话号码:
0262543210 <input type="checkbox" name="makeVisible" value="0262543210">
0265511223 <input type="checkbox" name="makeVisible" value="0265511223">
0398123456 <input type="checkbox" name="makeVisible" value="0398123456">
(显然你会添加某种格式,表格或无序列表或其他东西。)
然后在您的服务器端代码中处理每个makeVisible
(或您给它的任何名称)值,请记住只有选中的那些会被提交。此方法不需要 JavaScript。
如果您想为每个数字提交一个是/否或真/假(可见/隐藏)值,那么 no-JS 方法就是使用单选按钮。但是使用复选框最简单的方法可能是根据复选框状态设置隐藏字段:
<table>
<tr>
<th>Phone Number</th>
<th>Make visible?</th>
</tr>
<tr>
<td>0262543210</tr>
<td>
<input type="hidden" name="number" value="0262543210">
<input type="hidden" name="makeVisible">
<input type="checkbox" class="numbervisibility">
</td>
</tr>
<tr>
<td>0265511223</tr>
<td>
<input type="hidden" name="number" value="0265511223">
<input type="hidden" name="makeVisible">
<input type="checkbox" class="numbervisibility">
</td>
</tr>
<!-- etc. -->
</table>
如果需要,添加带有记录 ID 的其他隐藏字段,或者使用记录 ID 而不是电话号码 - 任何适合您的数据结构的内容。
然后在复选框更改时使用一些简单的 jQuery 设置隐藏值:
$(".numbervisibility").click(function() {
$(this).closest("td").find('input[name="makeVisible"]').val(this.checked ? "Y" : "N");
});
这样,在服务器端,您最终会得到具有数字和相关可见性设置的匹配字段数组。
请注意,如果您使用的是 PHP,则应[]
在末尾为重复字段命名,例如"makeVisible[]"
.
(当然,在任一解决方案中,您都可以使用服务器端代码将电话号码注入 html。)