여분필드 값을 비교해서 색상변경하려면 어떻게 하면 되는지요?
본문
여분필드 5개에 값을 넣었는데
여기서 가장 높은 값이나 가장 값을 가진 셀의 색상을 바꾸어 주려합니다. (쉽게 볼 수 있도록)
wr_1, wr_2, wr_3, wr_4, wt_5
두개면 if문의 만들어서 색상지정해주면 될 것 같은데
여러개에서 비교하는 것은 어떻게 하면 되는지요?
감사합니다
답변 5
https://www.php.net/manual/en/function.min.php
https://www.php.net/manual/en/function.max.php
위 함수를 공부해 보세요.
$data1 = $view['wr_1'];
$data2 = $view['wr_2'];
$data3 = $view['wr_3'];
$data4 = $view['wr_4'];
$values = array($data1, $data2, $data3, $data4);
$maxValue = max($values);
$maxIndexes = array_keys($values, $maxValue);
echo "최댓값: " . $maxValue . ", 인덱스: " . implode(", ", $maxIndexes);
모두 배열에 넣은뒤 최댓값과 해당 값의 순서를 찾을수 있습니다.
for 로 돌릴때 해당 순서와 일치시 css 변경등의 조건문을 넣으시면되겠네요
!-->
<?php
$wr_1 = 10;
$wr_2 = 20;
$wr_3 = 11;
$wr_4 = 2;
$wr_5 = 14;
$numbers = [$wr_1, $wr_2, $wr_3, $wr_4, $wr_5];
$max = array_search(max($numbers), $numbers);
foreach($numbers as $idx => $number) {
$style = $idx === $max ? ' style="color: red;"' : '';
echo '<span'.$style.'>'.$number.'</span><br>';
}
if($write['wr_1']==비교값 and $write['wr_2']==비교값)
이런식으로 처리하시되 and는 다 값이 같아야하고
or은 wr_1값도 있고 wr_2값도 존재하는 모두 실행되는 겁니다.
다음과 같은 방법도 있으니 참고해 보세요
<table>
<tr>
<td id="cell1"><?php echo $write['wr_1']; ?></td>
<td id="cell2"><?php echo $write['wr_2']; ?></td>
<td id="cell3"><?php echo $write['wr_3']; ?></td>
<td id="cell4"><?php echo $write['wr_4']; ?></td>
<td id="cell5"><?php echo $write['wr_5']; ?></td>
</tr>
</table>
<script>
function highlightMaxMinCells() {
const cells = document.querySelectorAll("td[id^='cell']");
// 초기값 설정
let maxVal = Number(cells[0].innerText);
let minVal = Number(cells[0].innerText);
let maxCell = cells[0];
let minCell = cells[0];
// 여분필드 값을 반복하면서 최대값과 최소값을 찾음
for (let i = 1; i < cells.length; i++) {
const cellValue = Number(cells[i].innerText);
if (cellValue > maxVal) {
maxVal = cellValue;
maxCell = cells[i];
}
if (cellValue < minVal) {
minVal = cellValue;
minCell = cells[i];
}
}
// 최대값과 최소값 셀에 색상 적용
maxCell.style.backgroundColor = "green"; // 또는 다른 색상
minCell.style.backgroundColor = "red"; // 또는 다른 색상
}
// 페이지 로드 시 실행
window.onload = highlightMaxMinCells;
</script>
highlightMaxMinCells()는 테이블의 각 셀에서 여분필드 값을 읽어와 최대값과 최소값을 찾은다음 해당 값을 가진 셀에 색상을 표시 할 수 있을 것 같습니다
!-->
답변을 작성하시기 전에 로그인 해주세요.