다른 게시판(차량 번호 목록)을 불러와서 리스트에 출력하는 부분까지 설정했는데,
'select_car' 에서 차량 번호를 선택(check) 했을때 해당 차량의 누적주행 거리 값을 불러오도록 구성하고 싶습니다.
* placeholder="<?php echo $document->option->car_current_distance ?>" * 으로 입력했을때는 마지막 등록한 차량번호의 값으로 불러오고 있습니다.
<?php
// 다른 게시판 정보 불러오기
global $wpdb;
$board_id = '1'; // 게시판 id
$current_user_id = get_current_user_id(); // 로그인 사용자 아이디 가져오기
$where[] = "`board_id`='{$board_id}'";
$where[] = "(`status`='' OR `status` IS NULL OR `status`='pending_approval')"; // 공지사항이 아니면서 휴지통에 있는 게시글이 아닌 정상글
$where = implode(' AND ', $where);
$user_content_count = $wpdb->get_var("SELECT COUNT(*) FROM `{$wpdb->prefix}kboard_board_content` WHERE `board_id` = '{$board_id}' And `member_uid` = '{$current_user_id}' And `status`='' OR `status` IS NULL OR `status`='pending_approval'"); // User Write Post Count
$results = $wpdb->get_results("SELECT `uid` FROM `{$wpdb->prefix}kboard_board_content` WHERE {$where} And `member_uid` = '{$current_user_id}'");
//get wp user data
$current_user = wp_get_current_user();
//Contents List Count
$content_list = new KBContentList($board_id);
$content_list->getList();
$list = $document->member_display == $current_user->display_name;
?>
<div id="select_car" class="kboard-attr-row kboard-attr-radio meta-key-select_car required">
<label class="attr-name" for="select_car"><span class="field-name">차량 선택</span> <span class="require">*</span></label>
<div class="attr-value">
<input type="hidden" type="radio" name="kboard_option_select_car" value="">
<?php foreach($results as $item):?>
<?php
$document = new KBContent();
$document->initWithUID($item->uid);
?>
<label class="attr-value-label"><input type="radio" name="kboard_option_select_car" class="required" value="<?php echo $document->option->car_number?>"<?php if($content->option->select_car == $document->option->car_number or $current_user->select_car == $document->option->car_number):?> checked<?php endif?>><?php echo $document->option->car_number?></label>
<?php endforeach?>
</div>
</div>
<div id="default_current_distance">
<label class="attr-name" for="car_current_distance">누적주행거리 <span class="require">*</span></label>
<div class=""><input type="number" id="kboard_option_car_current_distance" name="kboard_option_car_current_distance" value="<?php echo $content->option->car_current_distance?>" placeholder="주행거리 (ex. 1010 km)"></div>
</div>
그리고 가능하다면, 불러온 차량번호의 'car_current_distance' 을 같이 업데이트 할 수 있는 방법이 있을까요?
저장 시 update query로 구성해도 가능한지 문의 드립니다.
안녕하세요~^^
문의 하신 기능은 구현이 가능합니다.
하지만 직접 코드를 수정해서 커스터마이징을 하셔야 할 것 같습니다.
아래 링크에서 kboard_document_insert 훅을 사용해보시겠어요?
아래 링크도 참고해보시겠어요?
https://www.cosmosfarm.com/threads/document/40645
만약 수정해야 할 부분이 많거나
코드를 직접 수정하기 어려우시다면
프로젝트 의뢰에 상세 내용을 올려보세요.
https://www.cosmosfarm.com/project
고맙습니다.
답변 감사합니다. 공유해주신 것으로 구성했는데, 값이 업데이트가 되지 않습니다.
DB Query 로 직접 값을 입력할때는 되는데, 값이 업데이트가 되지 않는데 잘못 입력한 내용이 있을까요?
option_value 는 화면에서 입력한 값이고, content_uid 의 {$document->uid} 는 불러온 게시글의 uid 값을 입력하는 부분입니다.
add_action('kboard_document_update', 'kboard_document_update_car_distance', 10, 4);
function kboard_document_update_car_distance($content_uid, $board_id, $content, $board, $option_key, $option_value){
global $wpdb;
if($board_id == '3'){ // 실제 게시판 id로 적용해주세요.
// $wpdb->query() 함수를 활용하시면 DB 데이터를 추가하실 수 있습니다.
$wpdb->query("UPDATE opc_kboard_board_option SET `option_value` = '{$content->option->car_current_distance}' WHERE `option_key` = 'car_current_distance' AND `content_uid` = '{$document->uid}'");
}
}
화면에서 input에 입력한 {$content->option->car_current_distance} 과 게시글에서 불러온 데이터의 uid {$document->uid} 구문이 잘못되었을까요?
만약 해당 값을 불러오는게 않되는 부분이라면 화면에서 바로 업데이트할 수 있는 방법이 있을까요?
그리고 화면에서 입력한 값을 인식할 수 있는 코드가 있다면 알려주세요.