1

我正在使用下面的脚本通过使用explode/implode 来根据mySQL 表中的内容显示复选框。然后它会根据我的表格中位置字段包含的内容(例如,贵宾区、高架区、花园区)回显选中的复选框或未选中的复选框。

<?


$aColors = array("Upstairs Function Room", "Whole Raised Area", "VIP Area", "Piano Area", "DJ Table" , "Canopy area" , "Garden Area", "Whole Bar", "Back Bar Tables" , "Raised Area Table 1", "Raised Area Table 2", "Raised Area Table 3", "Raised Area Table 4", "Raised Area Table 5", "Raised Area Table 6");

//converting comma separated into array using explode function
$dbcolors= explode(',',$row['location']);

foreach ($aColors as $locations) {

    if(in_array($locations,$dbcolors)) {
        echo "<input name=\"locations[]\" type=\"checkbox\" value=\"$locations\" CHECKED> $locations <br> ";
    } else
    {
        echo "<input name=\"locations[]\" type=\"checkbox\" value=\"$locations\"> $locations <br>";
    }
}
?>

这工作正常,但我只能让它回显一长串复选框......我想要将它显示在一个表格中,并为每 5 个显示的复选框创建一个新列(实际上我应该最终得到大约 3 列),但我对如何实现这一点感到困惑……非常感谢任何帮助。

4

2 回答 2

1

最简单的方法是在外部$i初始化一个计数器,并在 foreach 内部递增它,然后每次为真时,您都会开始一个新列 ( )。$i = 0foreach$i++$i % 5 == 0echo '</td><td>'

如果您有其他样式,则使用array_chunk()像这样拆分数组可能更容易:foreach (array_chunk($aColors, 5) as $block) { }并使用$block[0], $block[1]...$block[4]foreach.

于 2012-11-20T20:37:57.817 回答
0

最终工作代码...

        <?


$aColors = array("Upstairs Function Room", "Whole Raised Area", "VIP Area", "Piano Area", "DJ Table" , "Canopy area" , "Garden Area", "Whole Bar", "Back Bar Tables" , "Raised Area Table 1", "Raised Area Table 2", "Raised Area Table 3", "Raised Area Table 4", "Raised Area Table 5", "Raised Area Table 6");

//converting comma separated into array using explode function
    $dbcolors= explode(',',$row['location']);
     $i = 0;     

          echo "<table border='0'><tr>    <td>";   

  foreach ($aColors as $locations) {

      $i++ ;


      if ($i % 5 == 0) {echo "</td>
    <td>";}

     if(in_array($locations,$dbcolors)) {
      echo "<input name=\"locations[]\" type=\"checkbox\" value=\"$locations\" CHECKED><span style='font-size:9px;'> $locations</span> <br> ";
          } else
          {
      echo "<input name=\"locations[]\" type=\"checkbox\" value=\"$locations\"> <span style='font-size:9px;'> $locations </span><br>";
                  }
              }

               echo "</td>
  </tr>
</table>";
?>
于 2012-11-20T21:37:29.437 回答