0

これは、リストを生成してデータベースにクエリを実行するphpコードです。すでにいくつかのcssがありますが、リストを6列、各16行に分割し、最後にさらに...リンクを追加したいと思います。

<?php

$show_manufacturers= true;

// for large lists of manufacturers uncomment this section

/*  if (($_GET['main_page']==FILENAME_DEFAULT and ($_GET['cPath'] == '' or    $_GET['cPath'] == 0)) or  ($request_type == 'SSL')) {
$show_manufacturers= false;
} else {
$show_manufacturers= true;
}
*/

// trueに設定すると、名前の代わりにメーカーの画像が表示されます

define('DISPLAY_MANUFACTURERS_IMAGES',false);
if ($show_manufacturers) {

// only check products if requested - this may slow down the processing of the    manufacturers sidebox
if (PRODUCTS_MANUFACTURERS_STATUS == '1') {
$manufacturer_sidebox_query = "select distinct m.manufacturers_id, m.manufacturers_name, m.manufacturers_image
                        from " . TABLE_MANUFACTURERS . " m
                        left join " . TABLE_PRODUCTS . " p on m.manufacturers_id = p.manufacturers_id
                        where m.manufacturers_id = p.manufacturers_id and p.products_status= 1
                        order by manufacturers_name";
} else {
$manufacturer_sidebox_query = "select m.manufacturers_id, m.manufacturers_name, m.manufacturers_image
                        from " . TABLE_MANUFACTURERS . " m
                        order by manufacturers_name";
}

$manufacturer_sidebox = $db->Execute($manufacturer_sidebox_query);

if ($manufacturer_sidebox->RecordCount()>0) {
$number_of_rows = $manufacturer_sidebox->RecordCount()+1;

//リストを表示します

$manufacturer_sidebox_array = array();
//      kuroi: commented out to avoid starting list with text scrolling list    entries such as "reset" and "please select"
//    if (!isset($_GET['manufacturers_id']) || $_GET['manufacturers_id'] == '' ) {
//      $manufacturer_sidebox_array[] = array('id' => '', 'text' => PULL_DOWN_ALL);
//    } else {
//      $manufacturer_sidebox_array[] = array('id' => '', 'text' =>  PULL_DOWN_MANUFACTURERS);
//    }

while (!$manufacturer_sidebox->EOF) {
  $manufacturer_sidebox_name = ((strlen($manufacturer_sidebox- >fields['manufacturers_name']) > MAX_DISPLAY_MANUFACTURER_NAME_LEN) ?  substr($manufacturer_sidebox->fields['manufacturers_name'], 0,  MAX_DISPLAY_MANUFACTURER_NAME_LEN) . '..' : $manufacturer_sidebox- >fields['manufacturers_name']);
  $manufacturer_sidebox_image = $manufacturer_sidebox->fields['manufacturers_image'];
  $manufacturer_sidebox_array[] =
    array('id' => $manufacturer_sidebox->fields['manufacturers_id'],
          'text' => DISPLAY_MANUFACTURERS_IMAGES ?
            zen_image(DIR_WS_IMAGES . $manufacturer_sidebox_image,     $manufacturer_sidebox_name) :
            $manufacturer_sidebox_name);
  $manufacturer_sidebox->MoveNext();
}

}

} // $show_manufacturersこれは私が変更を加える必要がある場所です

for ($i=0;$i<sizeof($manufacturer_sidebox_array);$i++) {
      $content = '';
  $content .= '<li ><a class="hide" href="' . zen_href_link(FILENAME_DEFAULT, 'manufacturers_id=' . $manufacturer_sidebox_array[$i]['id']) . '">';
  $content .= $manufacturer_sidebox_array[$i]['text'];
  $content .= '</a></li>' . "\n";
  echo $content;
}
?>
4

1 に答える 1

0

純粋な CSS ソリューションを探している場合は、次の 2 つのオプションがあります。

CSS3columnsプロパティを使用しますが、最新のブラウザーでのみ機能します (プレフィックス付きのバージョンが必要なブラウザーもあります)。何があっても6列を取得することが保証されています. 要素は新聞記事のように表示されます (上から下に読みます)。

http://caniuse.com/#feat=multicolumn

http://jsfiddle.net/funag/

フロートを使用します。フロートはずっと前から存在していますが、ワードラップされる可能性のあるコンテンツを見ている場合、特定の方法で並べるにはより多くの労力が必要になる場合があります。利点は、デバイスが狭すぎて 6 列をサポートできない場合、スクロールせずにその幅に適した数の列に適切に折り返されることです。要素は段落のように表示されます (左から右に読みます)。

http://jsfiddle.net/funag/2/

PHP を介して要素を分割しようとしている場合、必要なのはモジュラス演算子です。

if ($i % 6 == 0) {
    // insert html tags to force a break
}
于 2012-12-03T00:36:09.100 に答える