채택완료

회원등급 필터

Copy
<div class="cm11_top_right_wrap">

<select id="mb_level" name="mb_level[<?php echo $i ?>]" onchange="filterData()">

<option value="0"<?php echo get_selected($row['mb_level'], 0) ?>>등급선택</option>

<option value="2"<?php echo get_selected($row['mb_level'], 2) ?>>승인대기</option>

<option value="3"<?php echo get_selected($row['mb_level'], 3) ?>>E</option>

<option value="4"<?php echo get_selected($row['mb_level'], 4) ?>>D</option>

<option value="5"<?php echo get_selected($row['mb_level'], 5) ?>>C</option>

<option value="6"<?php echo get_selected($row['mb_level'], 6) ?>>B</option>

<option value="7"<?php echo get_selected($row['mb_level'], 7) ?>>A</option>

<option value="8"<?php echo get_selected($row['mb_level'], 8) ?>>S</option>

<option value="9"<?php echo get_selected($row['mb_level'], 9) ?>>운영팀</option>

<option value="10"<?php echo get_selected($row['mb_level'], 10) ?>>관리팀</option>

<option value="15"<?php echo get_selected($row['mb_level'], 15) ?>>최고관리자</option>

</select>

이거를 필터링을 할 수 있게 하려고하는데 어떻게 해야될까요? 셀렉트 박스내에서 해당 등급을 선택하면 바로 필터링되서 해당 데이터가 보이게 하려고 합니다.

답변 4개

채택된 답변
+20 포인트

이걸 참고해 보시겠어요?

 

 

<div class="cm11_top_right_wrap">
  <select id="mb_level" name="mb_level[<?php echo $i ?>]" onchange="filterData()">
    <option value="0"<?php echo get_selected($row['mb_level'], 0) ?>>등급선택</option>
    <option value="2"<?php echo get_selected($row['mb_level'], 2) ?>>승인대기</option>
    <option value="3"<?php echo get_selected($row['mb_level'], 3) ?>>E</option>
    <option value="4"<?php echo get_selected($row['mb_level'], 4) ?>>D</option>
    <option value="5"<?php echo get_selected($row['mb_level'], 5) ?>>C</option>
    <option value="6"<?php echo get_selected($row['mb_level'], 6) ?>>B</option>
    <option value="7"<?php echo get_selected($row['mb_level'], 7) ?>>A</option>
    <option value="8"<?php echo get_selected($row['mb_level'], 8) ?>>S</option>
    <option value="9"<?php echo get_selected($row['mb_level'], 9) ?>>운영팀</option>
    <option value="10"<?php echo get_selected($row['mb_level'], 10) ?>>관리팀</option>
    <option value="15"<?php echo get_selected($row['mb_level'], 15) ?>>최고관리자</option>
  </select>
</div>

<!-- 데이터를 표시할 영역 -->
<div id="dataList">
  <!-- 데이터 리스트를 출력하는 부분 -->
  <!-- 이 부분은 동적으로 업데이트될 것입니다. -->
</div>

<script>
  function filterData() {
    var selectedLevel = document.getElementById('mb_level').value;
    var dataList = document.getElementById('dataList');

    // 데이터 필터링 로직을 작성합니다.
    // 예시로, 선택한 등급과 일치하는 데이터만 보이도록 필터링하는 로직을 작성합니다.
    var dataItems = dataList.getElementsByClassName('data-item');
    for (var i = 0; i < dataItems.length; i++) {
      var dataItem = dataItems[i];
      var itemLevel = dataItem.getAttribute('data-level');
      if (itemLevel === selectedLevel || selectedLevel === '0') {
        dataItem.style.display = 'block'; // 선택한 등급과 일치하거나 '등급선택'이면 보이도록 설정
      } else {
        dataItem.style.display = 'none'; // 선택한 등급과 일치하지 않으면 숨김 처리
      }
    }
  }
</script>

 

 

 

어떤 화일에 질문의 내용이 있는지 부터 설명이 있어야 하는데....

허여튼 adm/member_list.php 에서 사용하는 방법

 

function filterData(){

 stx = $("#mb_level option:selected").val();

 location.href="?sfl=mb_level&stx="+stx;

}

 

filterData() 함수가 onchange시 실행 함수이므로..

Copy
let val = $(this).val();

location.href = 기존주소+val;

이렇게 간단하게 그냥 페이지 이동 방식이 있고

ajax로 데이터를 얻어와서 뿌려주는 방법도 있습니다

filterData() 함수에 스크립트로 처리해서 해당 검색기준으로 바로 보이게 하려면 ajax를 쓰셔야 하고

아니면 폼변수를 전송해서 필터링되어 보이도록 수정해야 합니다.

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