관리자 메뉴 db저장 관련 문의
본문
안녕하세요~
관리자 메인페이지 좌측에 퀵메뉴 부분을 구현을 하려고 하는데 잘 안되는 부분이 있어서 이렇게 문의 드립니다.
위의 이미지는 현재 관리자 메인페이지에 임의로 구현해놓은 것입니다.
좌측이 퀵메뉴가 들어가는 부분이며 중앙 이미지는 메뉴등록 부분입니다.
문제점은 메뉴등록시 db에 데이터가 저장이 되어야 하는데 저장이 되지 않고 있습니다.
소스코드는 아래와 같습니다.
ajax.q_menu_setup.php // 메뉴등록 파일
<?php
require_once './_common.php';
if ($is_admin != 'super') {
alert('최고관리자만 접근 가능합니다.');
}
// 메뉴테이블 생성
if (!isset($g5['qmenu_table'])) {
die('<meta charset="utf-8">dbconfig.php 파일에 <strong>$g5[\'qmenu_table\'] = G5_TABLE_PREFIX.\'qmenu\';</strong> 를 추가해 주세요.');
}
if (!sql_query(" DESCRIBE {$g5['qmenu_table']} ", false)) {
sql_query(
" CREATE TABLE IF NOT EXISTS `{$g5['qmenu_table']}` (
`qm_no` int(11) NOT NULL AUTO_INCREMENT,
`qm_name` varchar(255) NOT NULL DEFAULT '',
`qm_link` varchar(255) NOT NULL DEFAULT '',
`qm_rank` int(11) NOT NULL DEFAULT '0',
`qm_use` tinyint(4) NOT NULL DEFAULT '0',
PRIMARY KEY (`qm_no`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 ",
true
);
}
$sql = " select * from {$g5['qmenu_table']} order by qm_no ";
$result = sql_query($sql);
$colspan = 4;
?>
<!-- 퀵메뉴 설정 팝업 { -->
<div id="menu_setup_bg" class="hidden" onclick="javascript:closePop();"></div>
<form name="fq_menu_setup" action="/admin/adm_include/q_menu_setup/q_menu_setup_update.php" method="post">
<div id="menu_setup" class="hidden">
<h3>퀵메뉴 링크관리(메뉴명,링크 내용 삭제 후 저장하시면 자동으로 삭제 됩니다.)</h3>
<div class="setup_wrap">
<table width="100%" border="0" cellspacing="0" cellpadding="0">
<colgroup>
<col width="15%" />
<col width="" />
<col width="10%" />
<col width="10%" />
</colgroup>
<thead>
<tr>
<th scope="col">메뉴명</th>
<th scope="col">링크</th>
<th scope="col">출력순</th>
<th scope="col">사용여부</th>
</tr>
</thead>
<tbody id="setup_tbody">
<?php
for ($i = 0; $row = sql_fetch_array($result); $i++) {
$qm_name = str_replace($search, $replace, $row['qm_name']);
?>
<style>
#menu_setup #use_check<?php echo $i; ?> {display:none}
#menu_setup #use_check<?php echo $i; ?> + label.check_label {display:inline-block;position:relative;width:30px;height:14px;border-radius:20px;background:#c4c4c4;-webkit-transition:0.2s;-ms-transition:0.2s;transition:0.2s;cursor:pointer}
#menu_setup #use_check<?php echo $i; ?> + label.check_label:after {content:'';display:block;position:absolute;top:2px;left:2px;width:10px;height:10px;border-radius:12px;background-color:#fff;-webkit-transition:0.2s;-ms-transition:0.2s;transition:0.2s}
#menu_setup #use_check<?php echo $i; ?>:checked + label.check_label {background:#03a9f5}
#menu_setup #use_check<?php echo $i; ?>:checked + label.check_label:after {left:auto;right:2px}
@media \0screen {
/* 익스8이하는 체크박스보이기 */
#menu_setup #use_check<?php echo $i; ?> {display:inline-block;border:none;width:15px;height:15px}
#menu_setup #use_check<?php echo $i; ?> + label.check_label {display:none}
}
</style>
<tr id="tr0">
<td>
<input type="text" name="qm_name[]" value="<?php echo get_sanitize_input($qm_name); ?>">
</td>
<td>
<input type="text" name="qm_link[]" value="<?php echo $row['qm_link'] ?>">
</td>
<td>
<input type="text" name="qm_rank[]" value="<?php echo $row['qm_rank'] ?>">
</td>
<td class="check">
<input type="checkbox" name="qm_use[0]" id="use_check<?php echo $i; ?>" value="yes" checked >
<label for="use_check<?php echo $i; ?>" class="check_label"></label>
<input type="hidden" name="qm_no[]" value="<?php echo $row['qm_no'] ?>">
</td>
</tr>
<?php
}
?>
</tbody>
</table>
<div class="add_remove"><span id="add_btn"><img src="/admin/img/add.png" /></span><span id="del_btn"><img src="/admin/img/remove.png" /></span></div>
<script>
var count = 3; // 행개수
var full_count = 12; // 최대 행개수
$(function() {
/*$(window).load(function(){ // 처음 실행 시 onload
$('#add_btn').trigger('click');// 추가버튼 자동클릭
});*/
$('#add_btn').click(function() { // 추가
++count;// 행 추가할때마다 행개수 +1
if(count>full_count){// 최대 행개수보다 크면 리턴
alert("최대 12개까지만 가능합니다.");
return;
}
// 행 추가
$("#setup_tbody").append('<tr id=tr'+count+'><td><input type="text" name="qm_name[]"></td><td><input type="text" name="qm_link[]"></td><td><input type="text" name="qm_rank[]"></td><td class="check"><input type="checkbox" name="qm_use[]" id="use_check_'+count+'" value="use_'+count+'"><label for="use_check_'+count+'" class="check_label"></label><input type="hidden" name="qm_no[]"></td></tr>');
});
$('#del_btn').click(function() { // 삭제
//if(count<=1){// 행이 하나일 때 삭제 안함
// alert("더이상 삭제할 수 없습니다");
// return;
//}
// 마지막 tr 삭제
$('#tr'+count).remove();
count--; // tr 한줄씩 삭제
});
});
$('#add_btn').trigger('click');// 추가버튼 자동클릭
</script>
</div><!-- setup_wrap -->
<button type="submit" class="save_btn">저장</button>
<div id="setup_close" onclick="javascript:closePop()">
<img src="/admin/img/pupup_close.png" />
</div>
</div>
</form>
<!-- } 퀵메뉴 설정 팝업 -->
<script>
$("#menu_setup").css("display","block");
$("#menu_setup_bg").css("display","block")
setTimeout(function() {
$("#menu_setup").removeClass("hidden").css({"top":"150px"});
$("#menu_setup_bg").removeClass("hidden");
},300);
$("#sh_adm_hd").css("z-index","-1");
</script>
q_menu_setup_update.php // 메뉴업데이트 파일
<?php
require_once './_common.php';
check_demo();
if ($is_admin != 'super') {
alert('최고관리자만 접근 가능합니다.');
}
check_admin_token();
// 이전 메뉴정보 삭제
$sql = " delete from {$g5['qmenu_table']} ";
sql_query($sql);
$group_code = null;
$primary_code = null;
$count = isset($_POST['code']) ? count($_POST['code']) : 0;
for ($i = 0; $i < $count; $i++) {
$_POST = array_map_deep('trim', $_POST);
if (preg_match('/^javascript/i', preg_replace('/[ ]{1,}|[\t]/', '', $_POST['qm_link'][$i]))) {
$_POST['qm_link'][$i] = G5_URL;
}
$_POST['qm_link'][$i] = is_array($_POST['qm_link']) ? clean_xss_tags(clean_xss_attributes(preg_replace('/[ ]{2,}|[\t]/', '', $_POST['qm_link'][$i]), 1)) : '';
$_POST['qm_link'][$i] = html_purifier($_POST['qm_link'][$i]);
$code = is_array($_POST['code']) ? strip_tags($_POST['code'][$i]) : '';
$qm_name = is_array($_POST['qm_name']) ? strip_tags($_POST['qm_name'][$i]) : '';
$qm_link = (preg_match('/^javascript/i', $_POST['qm_link'][$i]) || preg_match('/script:/i', $_POST['qm_link'][$i])) ? G5_URL : strip_tags(clean_xss_attributes($_POST['qm_link'][$i]));
if (!$code || !$qm_name || !$qm_link) {
continue;
}
// 메뉴 등록
$sql = " insert into {$g5['qmenu_table']}
set qm_no = '" . $qm_no . "',
qm_name = '" . $qm_name . "',
qm_link = '" . $qm_link . "',
qm_rank = '" . sql_real_escape_string(strip_tags($_POST['qm_rank'][$i])) . "',
qm_use = '" . sql_real_escape_string(strip_tags($_POST['qm_use'][$i])) . "' ";
sql_query($sql);
}
goto_url('/admin');
dbconfig.php 파일에 아래와 같이 등록
$g5['qmenu_table'] = G5_TABLE_PREFIX.'qmenu'; // 퀵메뉴관리 테이블
이렇게 작업을 하였습니다. db테이블 및 컬럼도 정상적으로 생성이 되어있는데 db에 데이터가 등록이 되지 않습니다.
아직 초보자여서 배우면서 하고 있는데 계속 제자리 걸음이군요...
고수님들의 조언과 도움 부탁드리겠습니다.
즐거운 하루 마무리 잘 하시구요. 해결방법 꼭 부탁드리겠습니다.
!-->!-->답변 1
* q_menu_setup_update.php
sql_query($sql);
아래에
echo $sql;
exit;
구문을 넣어 sql문이 정상적인지 확인해 볼 수 있습니다.
이런 방식으로 하나씩 원인을 찾아나가면 됩니다.
답변을 작성하시기 전에 로그인 해주세요.