根据数组值设置复选框选中状态


set checkbox checked state based on array values

假设我最初在这样的页面上有一堆复选框输入:

<input type="checkbox" name="vehicle" value="Car" /> Car<br />
<input type="checkbox" name="vehicle" value="Bike" /> Bike<br />
<input type="checkbox" name="vehicle" value="Motorcycle" /> Motorcycle<br />
<input type="checkbox" name="vehicle" value="Bus" /> Bus<br />
<input type="checkbox" name="vehicle" value="Car" /> Train<br />

现在假设我有一个这样的数组:

$my_array = array(
    'first' => 'Bike', 
    'second' => 'Car', 
    'third' => 'Train'
);

如您所见,我的数组包含与我的复选框值相对应的值。

现在,如何根据数组的值设置每个复选框输入的状态,并使复选框即使在使用 php 刷新页面时也保持选中状态?换句话说,我想在我的页面上显示所有复选框,但只有那些值与我的数组中的值匹配的复选框才应该在页面上选中。这是否可能只用直接的PHP或我需要javascript?

请问有什么想法吗?我几乎尝试了所有方法都没有成功

当然,你可以用PHP做到这一点...

<input type="checkbox" name="vehicle" value="Car" <?php if(in_array('Car', $my_array)) echo( 'selected = "selected"'); ?>/> Car<br />

冲洗并重复所有复选框。

但是,如果您还保留一个包含所有可能选项的数组,那会更聪明。 然后,您可以遍历该数组并检查该数组中的每个条目,以查看它是否也存在于"所选"数组中。