0

データベースのフィールドをアルファベット順にエコーアウトするこのコードがあり、それらが始まるアルファベットの文字のヘッダーが付いています。データベース内の情報は、ページの幅 100% に収まるほど広くないため、情報を 2 つの個別の div に分割し、横に並べて表示したいと考えています。CSS は簡単ですが、分割方法がわかりません。彼ら。データベースには 50 個の項目があるため、最初の foreach ステートメントを 25 で停止し、2 番目の div で中断したところから続行します。

これが私のコードです:

<?php
    $previousLetter = false;
?>
<?php foreach($this->clubs as $clubs) : ?>
    <?php
    $firstLetter = substr($clubs->club_name, 0, 1);
    if ($firstLetter != $previousLetter) {
    ?>
        <h3 id="club-link-header"><u><?php echo $firstLetter; ?></u></h3>
    <?php } ?>
        <a id="club-link" href="<?php echo $this->url(array('controller' => 'club-description', 'action' => 'index', 'club_id' => $clubs->id));?>"><br />
        <?php echo $this->escape($clubs->club_name);?></a>
    <?php $previousLetter = $firstLetter; ?>
<?php endforeach; ?>

ありがとう

4

2 に答える 2

1

次のコードを試すことができます。ご理解いただけると幸いです。

<?php
    $previousLetter = false;
?>
<?php 
$i=1; // have a counter variable
foreach($this->clubs as $clubs) : ?>
    <?php
    $firstLetter = substr($clubs->club_name, 0, 1);
    if ($firstLetter != $previousLetter) {
    if($i==1){
        echo "<div class="left_class">"; // open left div
    }
    ?>
        <h3 id="club-link-header"><u><?php echo $firstLetter; ?></u></h3>
    <?php } ?>
        <a id="club-link" href="<?php echo $this->url(array('controller' => 'club-description', 'action' => 'index', 'club_id' => $clubs->id));?>"><br />
        <?php echo $this->escape($clubs->club_name);?></a>
    <?php $previousLetter = $firstLetter; ?>
<?php 
    if($i==25){
        echo "</div>"; //close left div
        echo "<div class="right_class">"; // open right div
    }

    if($i==50){
        echo "</div>"; //close right div
    }

$i++; // increment the counter variable for each loop
endforeach; 
?>
于 2012-04-26T13:37:48.610 に答える
0

これによりフロートがクリアされた後、別の div を配置する必要があります。

<div style="clear:both;"></div>
于 2013-01-16T01:42:55.913 に答える