【问题标题】:New table column, for every echo'd checkbox (php, mysql)新表列,用于每个回显复选框(php、mysql)
【发布时间】:2012-11-08 23:47:01
【问题描述】:

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

<?


$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 列),但我对如何实现这一点感到困惑......非常感谢任何帮助。

罗伯

【问题讨论】:

    标签: php mysql echo html-table implode


    【解决方案1】:

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

    如果您有其他样式,使用array_chunk() 分割数组可能更容易,如下所示:foreach (array_chunk($aColors, 5) as $block) { } 并使用$block[0]$block[1] ... $block[4]foreach 内访问它们。

    【讨论】:

    • 谢谢你,我对你提供的信息非常怀疑!对于任何有兴趣的人,请粘贴以下更改:
    【解决方案2】:

    最终的工作代码...

            <?
    
    
    $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>";
    ?>
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-06-12
      • 2012-06-17
      • 1970-01-01
      • 2013-09-11
      • 2012-06-03
      • 1970-01-01
      相关资源
      最近更新 更多