안녕하세요.
아래 스크린샷처럼 셀렉트 박스 내용을 가져오는 드롭 박스를 만들었습니다.
검색용으로 쓰려고 만들었는데, 검색이 되지 않습니다.
셀렉트 박스의 Label의 양과 추가삭제가 많이 일어나서
내용들을 자동으로 불러와서 검색되도록 만들고 싶은데 어떻게 고쳐야하나요?
https://imgur.com/AnIv9jk
<div class="board_search">
<form id="kboard-search-form-<?php echo $board->id?>" method="get" action="<?php echo $url->toString()?>">
<div class="search_box">
<?php echo $url->set('pageid', '1')->set('target', '')->set('keyword', '')->set('mod', 'list')->toInput()?>
<?php foreach($board->fields()->getSkinFields() as $key=>$field):?>
<?php if($field['field_type'] == 'select'):?>
<!-- 옵션 필드 검색 데이터를 초기화 -->
<?php $kboard_search_option = kboard_search_option()?>
<!-- 검색 방법 (AND, OR) -->
<input type="hidden" name="kboard_search_option[relation]" value="AND">
<input type="hidden" name="kboard_search_option[<?php echo $field['meta_key']?>][key]" value="<?php echo $field['meta_key']?>">
<input type="hidden" name="kboard_search_option[<?php echo $field['meta_key']?>][compare]" value="LIKE">
<input type="hidden" name="kboard_search_option[<?php echo $field['meta_key']?>][wildcard]" value="both">
<select name="kboard_search_option[<?php echo $field['meta_key']?>]][value]">
<option value=""><?php echo $field['meta_key']?></option>
<?php foreach($field['row'] as $option_key=>$option_value):?>
<?php if(isset($option_value['label']) && $option_value['label']):?>
<option value="<?php echo esc_attr($option_value['label'])?>"><?php echo esc_html($option_value['label'])?></option>
<?php endif?>
<?php endforeach?>
</select>
<?php endif?>
<?php endforeach?>
<input type="text" name="keyword" value="<?php echo esc_attr(kboard_keyword())?>" placeholder="검색" aria-label="검색">
<button type="submit" aria-label="검색"></button>
</div>
</form>
</div>
이렇게 하기전에 그냥 수동으로 입력해서 사용해보긴 했습니다.
라벨을 몇백개로 늘려야할 상황이 생겨서 수동으로 사용하기 힘들것같습니다.
안녕하세요.
올려주신 코드 중에 오타가 있는 듯합니다.
아래의 코드를 찾아서
<select name="kboard_search_option[<?php echo $field['meta_key']?>]][value]">
아래의 코드로 교체하신 후에 확인해보시겠어요?
<select name="kboard_search_option[<?php echo $field['meta_key']?>][value]">
코드 수정 시 대괄호 열고 닫힘을 잘 확인하셔야 할 듯합니다.
고맙습니다.
안녕하세요, 답변 감사드립니다. 위의 게시물에서 올렸던 아래의 코드가 언급해주신 링크를 보고 만든 것이기에 . 질문을 드립니다. 네이버 포스팅에 적힌대로 진행하면서 응용한것인데, 잘작동을 하지 않내요 ㅠㅠ,.
<div class="board_search">
<form id="kboard-search-form-<?php echo $board->id?>" method="get" action="<?php echo $url->toString()?>">
<div class="search_box">
<?php echo $url->set('pageid', '1')->set('target', '')->set('keyword', '')->set('mod', 'list')->toInput()?>
<?php foreach($board->fields()->getSkinFields() as $key=>$field):?>
<?php if($field['field_type'] == 'select'):?>
<!-- 옵션 필드 검색 데이터를 초기화 -->
<?php $kboard_search_option = kboard_search_option()?>
<!-- 검색 방법 (AND, OR) -->
<input type="hidden" name="kboard_search_option[relation]" value="AND">
<input type="hidden" name="kboard_search_option[<?php echo $field['meta_key']?>][key]" value="<?php echo $field['meta_key']?>">
<input type="hidden" name="kboard_search_option[<?php echo $field['meta_key']?>][compare]" value="LIKE">
<input type="hidden" name="kboard_search_option[<?php echo $field['meta_key']?>][wildcard]" value="both">
<select name="kboard_search_option[<?php echo $field['meta_key']?>]][value]">
<option value=""><?php echo $field['meta_key']?></option>
<?php foreach($field['row'] as $option_key=>$option_value):?>
<?php if(isset($option_value['label']) && $option_value['label']):?>
<option value="<?php echo esc_attr($option_value['label'])?>"><?php echo esc_html($option_value['label'])?></option>
<?php endif?>
<?php endforeach?>
</select>
<?php endif?>
<?php endforeach?>
<input type="text" name="keyword" value="<?php echo esc_attr(kboard_keyword())?>" placeholder="검색" aria-label="검색">
<button type="submit" aria-label="검색"></button>
</div>
</form>
</div>
안녕하세요~^^
커뮤니티에서 모든 코드를 봐드리기는 현실적으로 어렵습니다.
KBoard 플러그인에서 입력 필드 검색 방법은
아래의 링크를 참고 부탁드립니다.
KBoard(케이보드) 입력 필드 검색 방법 - 워드프레스 게시판 커스터마이징
고맙습니다.