2012-04-26 3 views
0

데이터베이스의 입력란을 알파벳순으로 헤더가있는 알파벳으로 시작하는 데 사용합니다. 데이터베이스의 정보가 페이지 너비에 맞게 충분히 넓지 않으므로 정보를 두 개의 별도 div로 나누고 나란히 띄우고 싶습니다. CSS는 쉽지만 분할 방법이 확실하지 않습니다. 그들. 데이터베이스에 50 개의 항목이 있으므로 첫 번째 foreach 문을 25에서 중단하고 두 번째 div에서 중단 한 부분부터 수행하십시오.각 문을 알파벳순으로 정렬 된 두 개의 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; ?> 

감사

답변

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; 
?> 
+0

.. 하나의 주요 결함이 있습니다. 오른쪽 레이아웃에 대한 정보가 필요합니다. 레이아웃을 위반하지 않고 플로팅 할 수 있어야합니다. 그러나 PHP가 깨 졌다고 생각하면서 정상 클래스 코드를 맨 위로 옮기면됩니다. – Rex89

0

이 항목을 삭제하면 다른 div에 입력해야합니다.

<div style="clear:both;"></div> 
관련 문제