如何爆炸数组并将块分配给相应的复选框字段?

时间:2010-09-06 04:56:51

标签: php arrays checkbox explode

以下情况:我在mysql表字段中存储了一个带有implode的复选框数组。现在,为了更新复选框,我想读取表格字段内容,将其分解为各个部分并将其分配给相应的复选框。

到目前为止,我设法将表字段内容读出并分解为不同的块,我的难点是如何分配给相应的复选框。

这是复选框字段:

<tr>
   <td><input class="field checkbox" type="checkbox" name="appbox[]" value="Automotive" <?php $appbox_checked ?> /><label class="choice">Automotive</label></td>
   <td><input class="field checkbox" type="checkbox" name="appbox[]" value="Backlights" <?php $appbox_checked ?> /><label class="choice">Backlights</label></td>
   <td><input class="field checkbox" type="checkbox" name="appbox[]" value="LED lighting" <?php $appbox_checked ?> /><label class="choice">LED lighting</label></td>
  </tr>
  <tr>
   <td><input class="field checkbox" type="checkbox" name="appbox[]" value="IR" <?php $appbox_checked ?> /><label class="choice">IR</label></td>
   <td><input class="field checkbox" type="checkbox" name="appbox[]" value="Signage/Traffic Lights" <?php $appbox_checked ?> /><label class="choice">Signage/Traffic lights</label></td>
   <td><input class="field checkbox" type="checkbox" name="appbox[]" value="Mobile Devices" <?php $appbox_checked ?> /><label class="choice">Mobile devices</label></td>
  </tr>

这是php代码:

$storebox = explode(", ", $chunk0);
    for($i = 0; $i < count($storebox); $i++){
    echo "Piece $i = $storebox[$i] <br />";
    }

块内容与复选框的值字段匹配。所以我需要的基本上是:

如果'chunk content'='复选框值' 然后<?php $appbox_checked ?>将回显'已检查'

或者可能有一个更简单的解决方案。谢谢你的帮助!

2 个答案:

答案 0 :(得分:1)

最简单的方法是使用in_array()

您正在撰写<?php $appbox_checked ?>的地方,请将其替换为此示例(示例 Automotive

 <?php if(in_array('Automotive', $storebox)) echo 'checked="checked"'; ?>

同样,对于所有行。例如对于背光,请将其替换为:

 <?php if(in_array('Backlights', $storebox)) echo 'checked="checked"'; ?>

答案 1 :(得分:0)

当您的代码必须呈现“已选中”复选框时,您所需要做的就是将一个属性添加到名为checked的复选框输入元素,值为yes:

<input type="checkbox" checked="yes" name="sports" value="soccer" />