为复选框使用表单输入数组

我在 XHTML 表单上变得更快的一种方法是尽可能使用输入数组。输入数组让我可以处理作为一个问题的多个答案的复选框的一个变量。以下是该过程的工作原理。

第 1 步:XHTML 表单

<table cellpadding="0" cellspacing="2">
	<tr>
		<td><input type="checkbox" name="how_hear[]" id="how_hear1" value="Website" <?php echo in_array('Website',$how_hear) ? 'checked="checked"' : ''; ?> /></td>
		<td ><label for="how_hear1">Website</label></td>
	</tr>
	<tr>
		<td><input type="checkbox" name="how_hear[]" id="how_hear2" value="TV Commercial" <?php echo in_array('TV Commercial',$how_hear) ? 'checked="checked"' : ''; ?> /></td>
		<td ><label for="how_hear2">TV Commercial</label></td>
	</tr>
	<tr>
		<td><input type="checkbox" name="how_hear[]" id="how_hear3" value="Magazine Ad" <?php echo in_array('Magazine Ad',$how_hear) ? 'checked="checked"' : ''; ?> /></td>
		<td ><label for="how_hear3">Magazine Ad</label></td>
	</tr>
	<tr>
		<td><input type="checkbox" name="how_hear[]" id="how_hear4" value="Billboard" <?php echo in_array('Billboard',$how_hear) ? 'checked="checked"' : ''; ?> /></td>
		<td ><label for="how_hear4">Billboard</label></td>
	</tr>
	<tr>
		<td><input type="checkbox" name="how_hear[]" id="how_hear5" value="Other" <?php echo in_array('Other',$how_hear) ? 'checked="checked"' : ''; ?> /></td>
		<td ><label for="how_hear5">Other</label></td>
	</tr>
</table>

请注意,每个输入的名称属性都是相同的:how_hear[]。括号表示输入字段是一个数组。还要注意每个输入标记中的 PHP,它确定是否应首先检查复选框。

第 2 步:PHP 表单验证和处理

//initialize
$how_hear = count($_POST['how_hear']) ? $_POST['how_hear'] : array();

//echo out their choices separated by a comma
echo count($how_hear) ? implode(', ',$how_hear) : 'Nothing';

为了避免 PHP 警告,我们在最顶部声明​​了 $how_hear 数组。

PHP 的 count() 函数返回所选项目的数量,因此我们需要至少检查一项,我们将使用 count()

最后,为了将选择显示为列表,我们使用 implode() 函数。

就是这样!单击此处查看示例。

赞(0) 打赏

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏