고수님들 도와주세요...ㅠㅠ 여분필드를 카테고리로 사용하려고 합니다

고수님들 도와주세요...ㅠㅠ 여분필드를 카테고리로 사용하려고 합니다

QA

고수님들 도와주세요...ㅠㅠ 여분필드를 카테고리로 사용하려고 합니다

본문


                <!-- 장르 -->
                <div class="select" id="genresSelect">
                    <input type="radio" id="radio-all-genres" name="wr_5" value="" <?php if (empty($_GET['wr_5'])) { echo 'checked'; } ?>>
                    <label for="radio-all-genres">전체</label>
                    <?php
                    $genres = array('액션', '롤플레잉', '퍼즐', '어드벤처', '시뮬레이션', '음악', '스포츠', '아케이드');
                    foreach ($genres as $genre) {
                        $checked = (isset($_GET['wr_5']) && $_GET['wr_5'] == $genre) ? 'checked' : '';
                        echo '<input type="radio" id="radio-' . $genre . '" name="wr_5" value="' . $genre . '" ' . $checked . '>';
                        echo '<label for="radio-' . $genre . '">' . $genre . '</label>';
                    }
                    ?>
                </div>


위와 같이 wr_5를 게시물리스트에서 라디오버튼으로 만들어서 카테고리처럼 사용하려고 합니다.

 

데이터 제공받아서 크롤러로 글을 자동으로 등록해주고 있는데 분류가 두 개 이상 들어가는 게 있습니다.

 

문제가 발생하는 것이 무엇이냐면 

wr_5에 데이터 값이 액션,롤플레잉으로 입력되어 있으면

액션 버튼을 눌렀을때 필터링이 잘되는데 롤플레잉으로 입력되어 있으면 필터링이 되질 않습니다ㅠㅠ

 

콤마로 구분되어 있는 두번째 단어를 인식 못하는 것 같은데 이것을 해결 할 수 있는 방법이 있을까요?

 

초보자가 게임 커뮤니티를 만들고 있는데 이것 때문에 20시간 잠도못자고 씨름하고 있습니다.ㅠㅠ

이 질문에 댓글 쓰기 :

답변 3

$_get 이게 아니라 게시판 읽기 나 글쓰기 구분해서 써야되요

$write['wr_5'] 입력폼이면 이걸로 해야되구요 

$genres = array('액션', '롤플레잉', '퍼즐', '어드벤처', '시뮬레이션', '음악', '스포츠', '아케이드');
foreach ($genres as $genre) {
    $checked = '';
    if (isset($_GET['wr_5'])) {
        $categories = explode(',', $_GET['wr_5']); // wr_5 값을 콤마로 분할
        if (in_array($genre, $categories)) { // 특정 카테고리가 분할된 배열에 있는지 확인
            $checked = 'checked';
        }
    }
    echo '<input type="radio" id="radio-' . $genre . '" name="wr_5" value="' . $genre . '" ' . $checked . '>';
    echo '<label for="radio-' . $genre . '">' . $genre . '</label>';

$categories 디버깅 했을때 배열로 나온거 맞나요?

카테고리로 디버깅 var_dump($categories); 했을 때 각 버튼클릭했을때 아래처럼 나옵니다..ㅠㅠ

array(1) {
  [0]=>
  string(6) "액션"
}


array(1) {
  [0]=>
  string(12) "롤플레잉"
}


array(1) {
  [0]=>
  string(6) "퍼즐"
}

디비확인해보세요 어떤식으로 저장이되는지요 wr_5 옵션 카테고리 확인 바랍니다.

데이터베이스에서는 wr_5 가 두개 이상일 경우

1개 -> 퍼즐

2개 -> 액션,롤플레잉

3개 -> 액션,롤플레잉,퍼즐

이렇게 콤마로 구분되어 저장되고 있습니다ㅠ

원하는것은 라디오버튼을 눌렀을때

wr_5 값이 액션,롤플레잉이면

액션을 클릭했을때도 해당 게시물이 나오고 롤플레잉을 눌러도 나오게 하는 것입니다..ㅠㅠ

<div class="select" id="genresSelect">
    <input type="checkbox" id="checkbox-all-genres" name="wr_5[]" value="" <?php if (empty($_GET['wr_5'])) { echo 'checked'; } ?>>
    <label for="checkbox-all-genres">전체</label>
    <?php
    $genres = array('액션', '롤플레잉', '퍼즐', '어드벤처', '시뮬레이션', '음악', '스포츠', '아케이드');
    foreach ($genres as $genre) {
        $checked = (isset($_GET['wr_5']) && in_array($genre, $_GET['wr_5'])) ? 'checked' : '';
        echo '<input type="checkbox" id="checkbox-' . $genre . '" name="wr_5[]" value="' . $genre . '" ' . $checked . '>';
        echo '<label for="checkbox-' . $genre . '">' . $genre . '</label>';
    }
    ?>
</div>
라디오버튼을 체크박스wr_5[]로 이렇게 바꿔보세요

답변을 작성하시기 전에 로그인 해주세요.
전체 38
QA 내용 검색

회원로그인

(주)에스아이알소프트 / 대표:홍석명 / (06211) 서울특별시 강남구 역삼동 707-34 한신인터밸리24 서관 1404호 / E-Mail: admin@sir.kr
사업자등록번호: 217-81-36347 / 통신판매업신고번호:2014-서울강남-02098호 / 개인정보보호책임자:김민섭(minsup@sir.kr)
© SIRSOFT