1

以下のスクリプトを使用して、爆発/内破を使用して、mySQL テーブルの内容に基づいてチェックボックスを表示しています。次に、テーブルの場所フィールドに含まれるもの (Vip エリア、Raised Area、Garden Area など) に基づいて、チェックされたチェックボックスまたはチェックされていないチェックボックスのいずれかをエコーし​​ます。

<?


$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

簡単な方法は、 foreachの外側で$i初期化し、 foreach の内側でインクリメントするカウンターです。true になるたびに、新しい列を開始します ( )。$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 に答える