https://www.cosmosfarm.com/threads/document/16990 글을 토대로 적용하였습니다.
하나의 필드는 셀럭트로, 하나의 필드는 인풋으로 처리 하였습니다.
셀렉트 박스는 정상작동 하는데 , 인풋 필드로 저장하는 값은 권한이 없다고 나오네요
안녕하세요~^^
올려주신 내용만으로는 원인을 파악하기 어렵습니다.
실제 적용하신 코드를 모두 올려주시겠어요?
코드를 올려주실 땐 반드시 "코드 스니펫 삽입"기능을 이용해주세요.
고맙습니다.
<pre>
$('.master_status').change(function(){
kboard_content_update($('.master_status').data('idx'), {kboard_option_master_status:$('.master_status').val()}, function(res){
if(res.result == 'success'){
alert('수정되었습니다.');
}
else{
alert(res.message);
}
});
});
$(".master_confirm").keydown(function(key) {
if (key.keyCode == 13 && $(this).val() != '') {
kboard_content_update($('.master_confirm').data('idx'), {kboard_option_master_confirm:$('.master_confirm').val()}, function(res){
if(res.result == 'success'){
alert('수정되었습니다.');
}
else{
alert(res.message);
}
});
}else if (key.keyCode == 13){
alert('날짜를 "YYYY-MM-DD"형식으로 입력해 주세요.');
}
});
</pre>
위와같이 작성하였습니다.
워드프레스에서 jQuery를 사용할 때 "$" 변수는 사용하실 수 없습니다.
"$" 변수 대신 "jQuery" 변수로 사용하셔야 합니다.
$('.master_status').change 대신 jQuery('.master_status').change 이런 식으로 적용해주셔야 합니다.
다른 부분의 코드 모두 "$" 변수 대신 "jQuery" 변수로 교체해보세요.
올려주신 코드만으로는 저희 쪽에서 직접 테스트해볼 수 없기 때문에
어느 부분이 문제인지 명확하게 답변을 드리기 어렵습니다.
HTML 코드도 올려주시겠어요?
그리고 코드를 올려주실 땐 반드시 "코드 스니펫 삽입" 기능을 이용해주세요. (에디터의 이미지 아이콘 오른쪽에 있습니다.)
그렇지 않으면 코드가 이상해져서 에러 나는 코드로 바뀌거나,
질의응답 시 의사소통에 오해와 문제가 생길 수도 있습니다.
고맙습니다.
<div id="kboard-default-list">
<!-- 게시판 정보 시작 -->
<div class="kboard-list-header">
<?php
/*
<?php if(!$board->isPrivate()):?>
<div class="kboard-total-count">
<?php echo __('Total', 'kboard')?> <?php echo number_format($board->getListTotal())?>
</div>
<?php endif?>
<div class="kboard-sort">
<form id="kboard-sort-form-<?php echo $board->id?>" method="get" action="<?php echo $url->toString()?>">
<?php echo $url->set('pageid', '1')->set('category1', '')->set('category2', '')->set('target', '')->set('keyword', '')->set('mod', 'list')->set('kboard_list_sort_remember', $board->id)->toInput()?>
<select name="kboard_list_sort" onchange="jQuery('#kboard-sort-form-<?php echo $board->id?>').submit();">
<option value="newest"<?php if($list->getSorting() == 'newest'):?> selected<?php endif?>><?php echo __('Newest', 'kboard')?></option>
<option value="best"<?php if($list->getSorting() == 'best'):?> selected<?php endif?>><?php echo __('Best', 'kboard')?></option>
<option value="viewed"<?php if($list->getSorting() == 'viewed'):?> selected<?php endif?>><?php echo __('Viewed', 'kboard')?></option>
<option value="updated"<?php if($list->getSorting() == 'updated'):?> selected<?php endif?>><?php echo __('Updated', 'kboard')?></option>
</select>
</form>
</div>
*/
?>
<div class="kboard-search default-notice">
<form id="kboard-search-form-<?php echo $board->id?>" method="get" action="<?php echo $url->toString()?>">
<?php echo $url->set('pageid', '1')->set('target', '')->set('keyword', '')->set('mod', 'list')->toInput()?>
<?php
/*
<select name="target">
<option value=""><?php echo __('All', 'kboard')?></option>
<option value="title"<?php if(kboard_target() == 'title'):?> selected<?php endif?>><?php echo __('Title', 'kboard')?></option>
<option value="content"<?php if(kboard_target() == 'content'):?> selected<?php endif?>><?php echo __('Content', 'kboard')?></option>
<option value="member_display"<?php if(kboard_target() == 'member_display'):?> selected<?php endif?>><?php echo __('Author', 'kboard')?></option>
</select>
*/
?>
<input type="text" name="keyword" value="<?php echo kboard_keyword()?>">
<button type="submit" class="kboard-default-button-small" title="<?php echo __('Search', 'kboard')?>"><i class="fas fa-search"></i></button>
</form>
</div>
</div>
<!-- 게시판 정보 끝 -->
<!-- 카테고리 시작 -->
<?php
if($board->use_category == 'yes'){
if($board->isTreeCategoryActive()){
$category_type = 'tree-select';
}
else{
$category_type = 'default';
}
$category_type = apply_filters('kboard_skin_category_type', $category_type, $board, $boardBuilder);
echo $skin->load($board->skin, "list-category-{$category_type}.php", $vars);
}
?>
<!-- 카테고리 끝 -->
<!-- 리스트 시작 -->
<div class="kboard-list">
<table>
<thead>
<tr>
<td class="kboard-list-uid"><?php echo __('Number', 'kboard')?></td>
<td class="kboard-list-title"><?php echo __('Title', 'kboard')?></td>
<td class="kboard-list-status"><?php echo __('심사결과', 'kboard')?></td>
<td class="kboard-list-confirm"><?php echo __('심사완료일', 'kboard')?></td>
<td class="kboard-list-user"><?php echo __('Author', 'kboard')?></td>
<td class="kboard-list-date"><?php echo __('Date', 'kboard')?></td>
<td class="kboard-list-vote"><?php echo __('Votes', 'kboard')?></td>
<td class="kboard-list-view"><?php echo __('Views', 'kboard')?></td>
</tr>
</thead>
<tbody>
<?php while($content = $list->hasNextNotice()):?>
<tr class="kboard-list-notice<?php if($content->uid == kboard_uid()):?> kboard-list-selected<?php endif?>">
<td class="kboard-list-uid"><?php echo __('Notice', 'kboard')?></td>
<td class="kboard-list-title" colspan="3">
<a href="<?php echo $url->getDocumentURLWithUID($content->uid)?>">
<div class="kboard-default-cut-strings">
<?php if($content->isNew()):?><span class="kboard-default-new-notify">New</span><?php endif?>
<?php if($content->secret):?><img src="<?php echo $skin_path?>/images/icon-lock.png" alt="<?php echo __('Secret', 'kboard')?>"><?php endif?>
<?php echo $content->title?>
<span class="kboard-comments-count"><?php echo $content->getCommentsCount()?></span>
</div>
</a>
<div class="kboard-mobile-contents">
<span class="contents-item kboard-user"><?php echo apply_filters('kboard_user_display', $content->member_display, $content->member_uid, $content->member_display, 'kboard', $boardBuilder)?></span>
<span class="contents-separator kboard-date">|</span>
<span class="contents-item kboard-date"><?php echo $content->getDate()?></span>
<span class="contents-separator kboard-vote">|</span>
<span class="contents-item kboard-vote"><?php echo __('Votes', 'kboard')?> <?php echo $content->vote?></span>
<span class="contents-separator kboard-view">|</span>
<span class="contents-item kboard-view"><?php echo __('Views', 'kboard')?> <?php echo $content->view?></span>
</div>
</td>
<td class="kboard-list-user"><?php echo apply_filters('kboard_user_display', $content->member_display, $content->member_uid, $content->member_display, 'kboard', $boardBuilder)?></td>
<td class="kboard-list-date"><?php echo $content->getDate()?></td>
<td class="kboard-list-vote"><?php echo $content->vote?></td>
<td class="kboard-list-view"><?php echo $content->view?></td>
</tr>
<?php endwhile?>
<?php while($content = $list->hasNext()):?>
<tr class="<?php if($content->uid == kboard_uid()):?>kboard-list-selected<?php endif?>">
<td class="kboard-list-uid"><?php echo $list->index()?></td>
<td class="kboard-list-title">
<a href="<?php echo $url->getDocumentURLWithUID($content->uid)?>">
<div class="kboard-default-cut-strings">
<?php if($content->isNew()):?><span class="kboard-default-new-notify">New</span><?php endif?>
<?php if($content->secret):?><img src="<?php echo $skin_path?>/images/icon-lock.png" alt="<?php echo __('Secret', 'kboard')?>"><?php endif?>
<?php echo $content->option->master_application_type?> / <?php echo $content->title?>
<span class="kboard-comments-count"><?php echo $content->getCommentsCount()?></span>
</div>
</a>
<div class="kboard-mobile-contents">
<span class="contents-item kboard-user"><?php echo apply_filters('kboard_user_display', $content->member_display, $content->member_uid, $content->member_display, 'kboard', $boardBuilder)?></span>
<span class="contents-separator kboard-date">|</span>
<span class="contents-item kboard-date"><?php echo $content->getDate()?></span>
<span class="contents-separator kboard-vote">|</span>
<span class="contents-item kboard-vote"><?php echo __('Votes', 'kboard')?> <?php echo $content->vote?></span>
<span class="contents-separator kboard-view">|</span>
<span class="contents-item kboard-view"><?php echo __('Views', 'kboard')?> <?php echo $content->view?></span>
</div>
</td>
<?php if($board->isAdmin()){ ?>
<td>
<select class="master_status" name="master_status" data-idx="<?=$content->uid?>" >
<option value="진행중" <?=$content->option->master_status == '진행중' ? 'selected':''?>>진행중</option>
<option value="승인" <?=$content->option->master_status == '승인' ? 'selected':''?>>승인</option>
<option value="미승인" <?=$content->option->master_status == '미승인' ? 'selected':''?>>미승인</option>
</select>
</td>
<td>
<input type="text" class="master_confirm" name="master_confirm" value="<?=$content->option->master_confirm?>">
</td>
<?php }else{ ?>
<td><?=$content->option->master_status?></td>
<td><?=$content->option->master_confirm?></td>
<?php } ?>
<td class="kboard-list-user"><?php echo apply_filters('kboard_user_display', $content->member_display, $content->member_uid, $content->member_display, 'kboard', $boardBuilder)?></td>
<td class="kboard-list-date"><?php echo $content->getDate()?></td>
<td class="kboard-list-vote"><?php echo $content->vote?></td>
<td class="kboard-list-view"><?php echo $content->view?></td>
</tr>
<?php $boardBuilder->builderReply($content->uid)?>
<?php endwhile?>
</tbody>
</table>
</div>
<!-- 리스트 끝 -->
<!-- 페이징 시작 -->
<div class="kboard-pagination">
<ul class="kboard-pagination-pages">
<?php echo kboard_pagination($list->page, $list->total, $list->rpp)?>
</ul>
</div>
<!-- 페이징 끝 -->
<!-- 검색폼 시작 -->
<?php
/*
<div class="kboard-search">
<form id="kboard-search-form-<?php echo $board->id?>" method="get" action="<?php echo $url->toString()?>">
<?php echo $url->set('pageid', '1')->set('target', '')->set('keyword', '')->set('mod', 'list')->toInput()?>
<select name="target">
<option value=""><?php echo __('All', 'kboard')?></option>
<option value="title"<?php if(kboard_target() == 'title'):?> selected<?php endif?>><?php echo __('Title', 'kboard')?></option>
<option value="content"<?php if(kboard_target() == 'content'):?> selected<?php endif?>><?php echo __('Content', 'kboard')?></option>
<option value="member_display"<?php if(kboard_target() == 'member_display'):?> selected<?php endif?>><?php echo __('Author', 'kboard')?></option>
</select>
<input type="text" name="keyword" value="<?php echo kboard_keyword()?>">
<button type="submit" class="kboard-default-button-small"><?php echo __('Search', 'kboard')?></button>
</form>
</div>
*/
?>
<!-- 검색폼 끝 -->
<?php if($board->isWriter()):?>
<!-- 버튼 시작 -->
<div class="kboard-control">
<a href="<?php echo $url->getContentEditor()?>" class="kboard-default-button-small"><?php echo __('New', 'kboard')?></a>
</div>
<!-- 버튼 끝 -->
<?php endif?>
<?php if($board->contribution()):?>
<div class="kboard-default-poweredby">
<a href="http://www.cosmosfarm.com/products/kboard" onclick="window.open(this.href);return false;" title="<?php echo __('KBoard is the best community software available for WordPress', 'kboard')?>">Powered by KBoard</a>
</div>
<?php endif?>
</div>
<script>
(function($){
$(document).ready(function(){
$('.master_status').change(function(){
kboard_content_update($('.master_status').data('idx'), {kboard_option_master_status:$('.master_status').val()}, function(res){
if(res.result == 'success'){
alert('수정되었습니다.');
}
else{
alert(res.message);
}
});
});
$(".master_confirm").keydown(function(key) {
if (key.keyCode == 13 && $(this).val() != '') {
kboard_content_update($('.master_confirm').data('idx'), {kboard_option_master_confirm:$('.master_confirm').val()}, function(res){
if(res.result == 'success'){
alert('수정되었습니다.');
}
else{
alert(res.message);
}
});
}else if (key.keyCode == 13){
alert('날짜를 "YYYY-MM-DD"형식으로 입력해 주세요.');
}
});
});
})(jQuery);
</script>
$변수 처리는 하였습니다. 그리고 셀렉트로 상태값 변경은 잘 됩니다. 날짜를 입력 받으려고 하는데 권한이 없다고 나오네요
ps. 그리고 추가 질문은 사용 중인 게시판에 필드를 추가하고 위 사항을 적용하면 리턴은 성공이지만 실제로는 수정이 안되더라구요
필드 추가 이후 작성한 글은 잘 작동 합니다.
올려주신 코드를 확인해보니
"권한이 없습니다." alert 창이 표시되는 건 게시글 uid가 없어서 표시되고 있습니다.
올려주신 코드 중에서
아래의 코드를 찾아서
<input type="text" class="master_confirm" name="master_confirm" value="<?=$content->option->master_confirm?>">
아래의 코드로 교체해보세요.
<input type="text" class="master_confirm" name="master_confirm" value="<?=$content->option->master_confirm?>" data-idx="<?php echo $content->uid?>">
스크립트 코드도 아래의 코드로 교체해보시겠어요?
<script>
jQuery(document).ready(function($){
$('.master_status').change(function(){
kboard_content_update($(this).data('idx'), {kboard_option_master_status:$(this).val()}, function(res){
if(res.result == 'success'){
alert('수정되었습니다.');
}
else{
alert(res.message);
}
});
});
$(".master_confirm").keydown(function(key) {
if (key.keyCode == 13 && $(this).val() != '') {
kboard_content_update($(this).data('idx'), {kboard_option_master_confirm:$(this).val()}, function(res){
if(res.result == 'success'){
alert('수정되었습니다.');
}
else{
alert(res.message);
}
});
}else if (key.keyCode == 13){
alert('날짜를 "YYYY-MM-DD"형식으로 입력해 주세요.');
}
});
});
</script>
올려주신 코드 또는 위의 코드처럼 적용하시면 "jQuery" 대신 "$"로도 사용하실 수 있습니다.
수정 시 원하는 대로 수정되지 않는 이유는 change 이벤트 또는 keydown 이벤트 발생 시
이벤트가 발생한 게시글의 uid를 인식하도록 설정되어 있지 않기 때문입니다.
고맙습니다.
안녕하세요
알려 주신 부분 수정하고 나니 리스트의 가장 최신글은 잘 적용이 됩니다.
하지만 게시글이 10개라면 10번째 글은 수정이 되고 그 아래 글들은 수정이 완료되었다고 나오지만
페이지를 새로 고침하면 해당 값이 DB에 저장되어 있지 않습니다.
이부분은 어딜 확인하면 될까요?
그리고 kboard에 달력 필드는 없나요?
안녕하세요.
저희 쪽 테스트 서버에서는 안내해드린 코드를 적용할 경우
가장 최신글 이외에도 다른 게시글도 정상적으로 수정되고 있습니다.
실제 적용하신 javascript 코드를 확인해보셔야 할 듯합니다.
현재 KBoard 플러그인 입력 필드 설정에 달력 필드는 기본으로 제공하고 있지 않습니다.
jQuery datepicker와 KBoard kboard_get_template_field_html 필터를 활용하면 가능할 듯합니다.
KBoard 플러그인에서 새로운 필드를 추가하는 방법은
아래의 링크를 참고해보세요.
고맙습니다.
제가 멍청하게 소스코드를 처리했네요 마음만 급해서 -0- ㅎㅎ
뭐가 원인인지 다 찾아서 해결했습니다. 감사합니다. ㅎ
datepicker 적용은 아래 링크로 간단히 해결했습니다.
https://stackoverflow.com/questions/27462984/use-jquery-datepicker-in-wordpress
감사합니다