테스트 사이트 - 개발 중인 베타 버전입니다

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

풍운 2년 전 조회 1,828

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

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

wr_1, wr_2, wr_3, wr_4, wt_5

 

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

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

 

감사합니다

댓글을 작성하려면 로그인이 필요합니다.

답변 5개

</p>

<p><?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>
';

}</p>

<p>

로그인 후 평가할 수 있습니다

답변에 대한 댓글 1개

풍운
2년 전
바쁘신데 너무 감사드립니다

댓글을 작성하려면 로그인이 필요합니다.

</p>

<p>$data1 = $view['wr_1'];

$data2 = $view['wr_2'];

$data3 = $view['wr_3'];

$data4 = $view['wr_4'];</p>

<p>$values = array($data1, $data2, $data3, $data4);

$maxValue = max($values);

$maxIndexes = array_keys($values, $maxValue);</p>

<p>echo "최댓값: " . $maxValue . ", 인덱스: " . implode(", ", $maxIndexes);

 

모두 배열에 넣은뒤 최댓값과 해당 값의 순서를 찾을수 있습니다.

for 로 돌릴때 해당 순서와 일치시 css 변경등의 조건문을 넣으시면되겠네요

로그인 후 평가할 수 있습니다

댓글을 작성하려면 로그인이 필요합니다.

다음과 같은 방법도 있으니 참고해 보세요

 

</p>

<p><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>

 </p>

<p><script>

    function highlightMaxMinCells() {

        const cells = document.querySelectorAll("td[id^='cell']");</p>

<p>        // 초기값 설정

        let maxVal = Number(cells[0].innerText);

        let minVal = Number(cells[0].innerText);

        let maxCell = cells[0];

        let minCell = cells[0];</p>

<p>        // 여분필드 값을 반복하면서 최대값과 최소값을 찾음

        for (let i = 1; i < cells.length; i++) {

            const cellValue = Number(cells[i].innerText);</p>

<p>            if (cellValue > maxVal) {

                maxVal = cellValue;

                maxCell = cells[i];

            }</p>

<p>            if (cellValue < minVal) {

                minVal = cellValue;

                minCell = cells[i];

            }

        }</p>

<p>        // 최대값과 최소값 셀에 색상 적용

        maxCell.style.backgroundColor = "green"; // 또는 다른 색상

        minCell.style.backgroundColor = "red";   // 또는 다른 색상

    }</p>

<p>    // 페이지 로드 시 실행

    window.onload = highlightMaxMinCells;

</script>

 

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

로그인 후 평가할 수 있습니다

답변에 대한 댓글 1개

풍운
2년 전
원하는 것을 전부 주셨네요 감사합니다. 알려주신데로 해보겠습니다

댓글을 작성하려면 로그인이 필요합니다.

플라이
2년 전

if($write['wr_1']==비교값 and $write['wr_2']==비교값)

이런식으로 처리하시되 and는 다 값이 같아야하고

or은 wr_1값도 있고 wr_2값도 존재하는 모두 실행되는 겁니다.

로그인 후 평가할 수 있습니다

답변에 대한 댓글 1개

풍운
2년 전
네 가르쳐 주셔서 감사합니다

댓글을 작성하려면 로그인이 필요합니다.

s
sinbi Expert
2년 전
로그인 후 평가할 수 있습니다

답변에 대한 댓글 1개

풍운
2년 전
감사합니다

댓글을 작성하려면 로그인이 필요합니다.

답변을 작성하려면 로그인이 필요합니다.

로그인