将复选框的值传递给数组是否已选中

时间:2012-03-09 03:25:59

标签: php html

我需要传递值和其他几个值,具体取决于选中的复选框。我发现在这里发布了几次其他时间来依赖html,并在复选框之前传递一个隐藏值:

<input type="hidden" value="0"  name="B_1" />
<input type="checkbox" value="1"  name="B_1" />
<input type="hidden" value="0"  name="B_2" />
<input type="checkbox" value="1"  name="B_2" />
<input type="hidden" value="0"  name="B_3" />
<input type="checkbox" value="1"  name="B_3" />

然后在php中我根据这些复选框进行不同的关联:

$b = "Buyers";
$bv1 = "Not a web item";
$bv2 = "Need sample";
$bv3 = "Sample not available";

if ($_POST['B_1']) { $b1 = array( $b , $bv1 , $_POST['B_1'] ); } 
if ($_POST['B_2']) { $b2 = array( $b , $bv2 , $_POST['B_2'] ); } 
if ($_POST['B_3']) { $b3 = array( $b , $bv3 , $_POST['B_3'] ); } 

当我使用print_r时,我只看到我检查过的那些盒子的数组:

Array ( [0] => Buyers [1] => Not a web item [2] => 1 )

我希望看到所有数组都返回,无论复选框的状态如何。

Array ( [0] => Buyers [1] => Not a web item [2] => 0 ) 
Array ( [0] => Buyers [1] => Need sample [2] => 1 ) 
Array ( [0] => Buyers [1] => Sample not available [2] => 0 )

1 个答案:

答案 0 :(得分:2)

我根本没有看到隐藏字段的使用(同样,它们不应该与其他元素具有相同的名称,除非该字段是数组)。如果您不使用它们,我建议您将HTML更改为:

<input type="checkbox" value="B_1"  name="B_1" />
<input type="checkbox" value="B_2"  name="B_2" />
<input type="checkbox" value="B_3"  name="B_3" />

您可以在复选框元素value属性中存储所需的任何值。

如果您需要所有数组,无论是否选中这些框,都应删除if

$b1 = array( $b , $bv1 , $_POST['B_1'] );
$b2 = array( $b , $bv2 , $_POST['B_2'] );
$b3 = array( $b , $bv3 , $_POST['B_3'] );