여분필드 값을 비교해서 색상변경하려면 어떻게 하면 되는지요?

여분필드 값을 비교해서 색상변경하려면 어떻게 하면 되는지요?

QA

여분필드 값을 비교해서 색상변경하려면 어떻게 하면 되는지요?

답변 5

본문

여분필드 5개에 값을 넣었는데

여기서 가장 높은 값이나 가장 값을 가진 셀의 색상을 바꾸어 주려합니다. (쉽게 볼 수 있도록)

wr_1, wr_2, wr_3, wr_4, wt_5

 

두개면 if문의 만들어서 색상지정해주면 될 것 같은데

여러개에서 비교하는 것은 어떻게 하면 되는지요?

 

감사합니다

이 질문에 댓글 쓰기 :

답변 5


$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()는 테이블의 각 셀에서 여분필드 값을 읽어와 최대값과 최소값을 찾은다음 해당 값을 가진 셀에 색상을 표시 할 수 있을 것 같습니다

답변을 작성하시기 전에 로그인 해주세요.
QA 내용 검색
질문등록
전체 129,117
© SIRSOFT
현재 페이지 제일 처음으로