게시글 출력 시 여분 필드 값에 따라 div 묶는 방법? 채택완료
굼떠
2년 전
조회 1,870
안녕하세요~ 회사 홈페이지 연혁을 게시판으로 등록을 하고 있는데 여분 필드 값에 따라 div를 묶는 방법이 있을까요?
</p>
<p> <div class="tbl_head01 tbl_wrap"></p>
<p> <ul class="year_total mt-80"></p>
<p> <?php for ($i=0; $i<count($list); $i++) {</p>
<p> $edit_href = "../bbs/write.php?w=u&bo_table=$bo_table&wr_id=".$list[$i][wr_id];</p>
<p> ?></p>
<p> <li class="pro<?php echo $list[$i]['wr_15'] ?>"></p>
<p> <div class="res_pd clear"></p>
<p> <div class="year mc"><?php echo $list[$i]['wr_15'] ?> <?php if ($is_checkbox) { ?><label for="chk_wr_id_<?php echo $i ?>" class="sound_only"><?php echo $list[$i]['wr_15'] ?></label><input type="checkbox" name="chk_wr_id[]" value="<?php echo $list[$i]['wr_id'] ?>" id="chk_wr_id_<?php echo $i ?>"><?php } ?></div></p>
<p> <div class="con"><a href="<?php echo $list[$i]['href'].'&sca='.urlencode($list[$i]['ca_name']); ?>"></p>
<p> <?php echo $list[$i]['wr_subject'] ?></p>
<p> </div></p>
<p> </div></p>
<p> </li></p>
<p> <? } ?></p>
<p> </ul></p>
<p> </div></p>
<p>
리스트 출력은 현재 이렇습니다. wr_15에는 시행년도가 기록되는데
해당 년도에 리스트가 여러개면 같은 숫자가 반복되는게 보기에 썩 좋지가 않아서
wr_15의 값이 동일한 리스트만 한곳에 묶였으면 좋겠네요.
<기존 모양>

<원하는 모양>

아참. 해당 게시판은 wr_15 값에 따라 내림차순으로 정렬하고 있습니다.
댓글을 작성하려면 로그인이 필요합니다.
답변 3개
채택된 답변
+20 포인트
2년 전
</p>
<p><?php
$is_checkbox = false;
$bo_table = 'test';
$list = [
['wr_id' => '9', 'href' => '#9', 'ca_name' => '1', 'wr_subject' => '9', 'wr_15' => '2023'],
['wr_id' => '8', 'href' => '#8', 'ca_name' => '1', 'wr_subject' => '8', 'wr_15' => '2022'],
['wr_id' => '7', 'href' => '#7', 'ca_name' => '1', 'wr_subject' => '7', 'wr_15' => '2022'],
['wr_id' => '6', 'href' => '#6', 'ca_name' => '1', 'wr_subject' => '6', 'wr_15' => '2022'],
['wr_id' => '5', 'href' => '#5', 'ca_name' => '1', 'wr_subject' => '5', 'wr_15' => '2022'],
['wr_id' => '4', 'href' => '#4', 'ca_name' => '1', 'wr_subject' => '4', 'wr_15' => '2022'],
['wr_id' => '3', 'href' => '#3', 'ca_name' => '1', 'wr_subject' => '3', 'wr_15' => '2021'],
['wr_id' => '2', 'href' => '#2', 'ca_name' => '1', 'wr_subject' => '2', 'wr_15' => '2020'],
['wr_id' => '1', 'href' => '#1', 'ca_name' => '1', 'wr_subject' => '1', 'wr_15' => '2020'],
];</p>
<p> </p>
<p>$wr_15_values = array_column($list, 'wr_15');
$wr_15_values = array_unique($wr_15_values);
?></p>
<p> </p>
<p><style>
.year_total { list-style-type: none; }
.year_total .year { font-size: 1.6em; font-weight: bold; color: #c0392b; }</p>
<p>.year_total .con { display: inline-block; }
<?php
$css = '';
foreach ($wr_15_values as $v) {
$css .= '.year_total .pro' . $v . ' ~ .pro' . $v . ' .year { display: none; }' . PHP_EOL;
}
echo $css;
?>
</style></p>
<p> </p>
<p> <div class="tbl_head01 tbl_wrap">
<ul class="year_total mt-80">
<?php for ($i=0; $i<count($list); $i++) {
$edit_href = "../bbs/write.php?w=u&bo_table=$bo_table&wr_id=".$list[$i]['wr_id'];
?>
<li class="pro<?php echo $list[$i]['wr_15'] ?>">
<div class="res_pd clear">
<div class="year mc"><?php echo $list[$i]['wr_15'] ?></div>
<?php if ($is_checkbox) { ?><input type="checkbox" name="chk_wr_id[]" value="<?php echo $list[$i]['wr_id'] ?>" id="chk_wr_id_<?php echo $i ?>"><?php } ?>
<div class="con"><a href="<?php echo $list[$i]['href'].'&sca='.urlencode($list[$i]['ca_name']); ?>">
<?php echo $list[$i]['wr_subject'] ?>
</a></div>
</div>
</li>
<?php } ?>
</ul>
</div></p>
<p>
로그인 후 평가할 수 있습니다
댓글을 작성하려면 로그인이 필요합니다.
2년 전
다음과 같은 방법도 있으니 참고해 보세요
</p>
<p><div class="tbl_head01 tbl_wrap">
<?php
$current_year = null; // 초기값 설정</p>
<p> for ($i = 0; $i < count($list); $i++) {
$year = $list[$i]['wr_15'];</p>
<p> // 현재 연도와 다르다면 새로운 그룹을 시작
if ($year !== $current_year) {
if ($current_year !== null) {
// 이전 그룹을 닫음
echo '</ul></div>';
}</p>
<p> // 새로운 그룹 시작
echo '<div class="year_group">';
echo '<h2>' . $year . '년 그룹</h2>';
echo '<ul class="year_total mt-80">';
$current_year = $year;
}</p>
<p> // 리스트 아이템 출력
echo '<li class="pro' . $year . '">';
echo '<div class="res_pd clear">';
echo '<div class="year mc">' . $year . '</div>';
echo '<div class="con"><a href="' . $list[$i]['href'] . '&sca=' . urlencode($list[$i]['ca_name']) . '">' . $list[$i]['wr_subject'] . '</a></div>';
echo '</div>';
echo '</li>';
}</p>
<p> // 마지막 그룹을 닫음
echo '</ul></div>';
?>
</div>
이렇게 하면 동일한 연도의 리스트가 하나의 그룹으로 묶이게 될 것 같습니다.
로그인 후 평가할 수 있습니다
댓글을 작성하려면 로그인이 필요합니다.
답변을 작성하려면 로그인이 필요합니다.
로그인