게시판 질문드립니다.

게시판 질문드립니다.

QA

게시판 질문드립니다.

본문

제가 counsel 게시판 스킨을 사용중인데 게시판 스킨중에 체크박스라는 기능을 사용중인데 체크박스를 차례대로 클릭하면 제대로 저장이 되는데 첫번째박스랑 마지막 박스를 선택하던지 2,4번 박스 이런식으로 하중간에 체크박스 하나를 선택하지 않고 저장할시 제대로 체크박스 선택목록이 저장이 안되서 오류가 생기던데 혹시 어떤파일을 수정해야되는지 아니면 어떤부분의 코드를 보여드려야 하는지 알려주세요ㅠ.. 웹쪼겡 입문한지 얼마 안된 신입이라 조금 어렵네요ㅠ.. 위에 물어볼 상사도 없어서 이렇게 질문 남깁니다.

이 질문에 댓글 쓰기 :

답변 3


for ($s=0 ; $s<=sizeof($_POST['Ncheck1']); $s++){
	$check1 .= ($s)?"|":"";
	$check1 .= $Ncheck1[$s];
}

위 소스를 아래 소스로 변경하고, view쪽 소스는 제가 처음 코멘트 단 소스로 해보세요.


$check1 = implode('|', $_POST['Ncheck1']);

소스를 좀 더 분석해야 오류 파악이 될 듯 한데요,
기본적으로 POST로 넘어간 Ncheck1 부분이 최초 의도된 프로그래밍과 다르게 넘어가는 부분으로 보입니다.
수정 버튼시 수정 체크는 gen_single_checkbox 함수를 수정해야 될 듯 하네요.
아니면 javascript로 추가로 체크되게 처리하는게 좋을 듯 합니다.

list.skin.php 파일에서 체크박스 태그 들어가는 부분이랑 하단에 스크립트 부분 정도가 최소 필요 할 듯 합니다.

view에서 오류가 나는데 view체크박스코드 입니다.


case '4'://체크박스
	if($csconfig[$fvs]!='0'){

	$Arrays=optArray($fvs,$mdatas);

	$view[$fvs] = explode("|", $view[$fvs]);

	$check_item = "";
	for( $i = 0; $i < count( $Arrays ); $i++ ){
		if ( $Arrays[$i] == $view[$fvs][$i] ){
			$check_item .= '<code>' . $Arrays[$i] .'</code>&nbsp;&nbsp;';
		}
    // else {
		// 	$check_item .= $Arrays[$i].'&nbsp;&nbsp;';
		// }
	}
	echo '<tr>
		<th scope="row">'.$mdatas[$fvs][iname].'</th>
		<td>'.$check_item.'</td>
	</tr>';
} break;


wirte 스킨 코드입니다.

case '4':	// 체크박스
	if($csconfig[$fvs]=='1' || $csconfig[$fvs]=='2'){
		if($csconfig[$fvs]=='2') { $needstr = '<strong class="sound_only">필수</strong>'; }
		else { $needstr = ''; }
		$Arrays=optArray($fvs,$mdatas);

		$ch_array[$fvs] = explode("|", $write[$fvs]);

		echo '<tr>

			<td class="check_box_wrap" colspan="2">';
				gen_single_checkbox("",'N'.$fvs,$Arrays,$Arrays,$ch_array[$fvs],'',$mdatas[$fvs]['size2']);
				if($mdatas[$fvs]['bigo']) echo '<span class="text-muted font-12" style="margin-top:4px;">'.get_text($mdatas[$fvs]['bigo'], 1).'</span>';
		echo '</td>

		</tr>';

		if($csconfig[$fvs]=='2') {
			$javastr.="
			kk=0;
			for ( ii=0; ii < ".sizeof($Arrays)." ; ii++ ){
				if (document.fwrite.N".$fvs."[ii].checked) {kk=1; ii=".sizeof($Arrays)."; }
			}
			if(kk<1){ alert('".$mdatas[$fvs][iname]."을(를) 선택하여 주십시오.'); document.fwrite.N".$fvs."[0].focus(); return false ;   }
			";
		}

	} break;

위 소스로 대략적으로 유추해보자면 아마 DB 입력시 체크하지 않으면 공란값으로 들어가고

뷰페이지에서는 공란 값이면 보이지 않게 처리를 했던것 같기도 한데..

공란값이 없이 들어가서 뷰페이지 코드랑 문제가 있는 듯 합니다.

상세한건 $view[$fvs]의 값과(문제가 생기도록 체크한) $Arrays=optArray($fvs,$mdatas); 의 값을 알아야 합니다만,

깜냥으로 아래 처럼 뷰페이지 소스를 변경해 보시는게 좋을 듯 합니다.

해당 소스로 안되면 입력상의 문제가 있는지도 살펴봐야 하니

$view[$fvs]의 값과(문제가 생기도록 체크한) $Arrays=optArray($fvs,$mdatas);의 값이 필요하겠네요.



case '4'://체크박스
	if($csconfig[$fvs]!='0'){

	$Arrays=optArray($fvs,$mdatas);

	$view[$fvs] = explode("|", $view[$fvs]);

	$check_item = "";
	for( $i = 0; $i < count( $view[$fvs] ); $i++ ) {
	    if(in_array($view[$fvs][$i], $Arrays)) {
		$check_item .= '<code>' . $view[$fvs][$i] .'</code>  ';
	    }
	}
	echo '<tr>
		<th scope="row">'.$mdatas[$fvs][iname].'</th>
		<td>'.$check_item.'</td>
	</tr>';
} break;

그래도 계속 오류가 생겨서 말씀하신

$view[$fvs]의 값과(문제가 생기도록 체크한) $Arrays=optArray($fvs,$mdatas);의 값이 필요하겠네요.

이값은 어떻게 확인해서 알려드릴수있나요???

혹시 게시판 주소도 함께 적었습니다.

http://medionmso.com/gnu/bbs/board.php?bo_table=inquiry&page=

$view[$fvs] = explode("|", $view[$fvs]);
이 소스 밑에
print_r2($view[$fvs]);
추가하시면 되고,

$Arrays=optArray($fvs,$mdatas);
밑에 동일하게
print_r2($Arrays);
요거 추가해서 새로 고침해보시면 해당 변수값 나옵니다용.


그리고 아마도, write_update.skin.php, write_update.head.skin.php 파일 내용도 필요 할 듯 합니다.

말씀하신 출력값입니다.
Array
(
    [0] => 마케팅
    [1] => 개원 컨설팅
    [2] => 경영지원
    [3] => 앱/프로그램 제작
    [4] => 홈페이지 제작
    [5] => CS교육
    [6] => 모델촬영
    [7] => 메디컬 아카데미
)
Array
(
    [0] =>
    [1] => 개원 컨설팅
    [2] =>
)


write_update.skin.php, write_update.head.skin.php  말씀하신 스킨은 없고  write_update.tail.skin.php스킨이 있었습니다.


<?php
if (!defined('_GNUBOARD_')) exit; // 개별 페이지 접근 불가

if($csconfig['cf_counsel']){

	$addre	= $_POST['Nzip']."|".$_POST['Naddre1']."|".$_POST['Naddre2']."|".$_POST['Naddre3']."|".$_POST['Naddre_jibeon'];
	$tel	= $_POST['Ntel'];
	$hphone = $_POST['Nhphone'];

	$oaddre = $_POST['Nozip']."|".$_POST['Noaddre1']."|".$_POST['Noaddre2']."|".$_POST['Noaddre3']."|".$_POST['Noaddre_jibeon'];
	$otel	= $_POST['Notel'];

	$fax	= $_POST['Nfax'];
	$ename	= $_POST['Nename'];
	$sex	= $_POST['Nsex'];
	$birth	= $_POST['Nyear'].'-'.$_POST['Nmonth'].'-'.$_POST['Nday'];
	$merry	= $_POST['Nmerry'];

	$grade	= $_POST['Ngrade'];
	$bizno	= $_POST['Nbizno'];
	$job	= $_POST['Njob'];
	$duty	= $_POST['Nduty'];
	$likes	= $_POST['Nlikes'];
	$emailok = $_POST['Nemailok'];
	$rcid	= $_POST['Nrcid'];

	//input1,input2,input3,input4,input5,
	$input1 = $_POST['Ninput1'];
	$input2 = $_POST['Ninput2'];
	$input3 = $_POST['Ninput3'];
	$input4 = $_POST['Ninput4'];
	$input5 = $_POST['Ninput5'];

	//select1,select2,select3,select4,select5,
	$select1 = $_POST['Nselect1'];
	$select2 = $_POST['Nselect2'];
	$select3 = $_POST['Nselect3'];
	$select4 = $_POST['Nselect4'];
	$select5 = $_POST['Nselect5'];

	//radio1,radio2,radio3,radio4,radio5,
	$radio1 = $_POST['Nradio1'];
	$radio2 = $_POST['Nradio2'];
	$radio3 = $_POST['Nradio3'];
	$radio4 = $_POST['Nradio4'];
	$radio5 = $_POST['Nradio5'];

	//check1,check2,check3,check4,check5,
	for ($s=0 ; $s<=sizeof($_POST['Ncheck1']); $s++){
		$check1 .= ($s)?"|":"";
		$check1 .= $Ncheck1[$s];
	}
	for ($s=0 ; $s<=sizeof($_POST['Ncheck2']); $s++){
		$check2 .= ($s)?"|":"";
		$check2 .= $Ncheck2[$s];
	}
	for ($s=0 ; $s<=sizeof($_POST['Ncheck3']); $s++){
		$check3 .= ($s)?"|":"";
		$check3 .= $Ncheck3[$s];
	}
	for ($s=0 ; $s<=sizeof($_POST['Ncheck4']); $s++){
		$check4 .= ($s)?"|":"";
		$check4 .= $Ncheck4[$s];
	}
	for ($s=0 ; $s<=sizeof($_POST['Ncheck5']); $s++){
		$check5 .= ($s)?"|":"";
		$check5 .= $Ncheck5[$s];
	}

	// txt1,txt2,txt3
	$txt1 = '';
	if (isset($_POST['Ntxt1'])) {
		$txt1 = substr(trim($_POST['Ntxt1']),0,65536);
		$txt1 = preg_replace("#[\\\]+$#", "", $txt1);
	}

	$txt2 = '';
	if (isset($_POST['Ntxt2'])) {
		$txt2 = substr(trim($_POST['Ntxt2']),0,65536);
		$txt2 = preg_replace("#[\\\]+$#", "", $txt2);
	}

	$txt3 = '';
	if (isset($_POST['Ntxt3'])) {
		$txt3 = substr(trim($_POST['Ntxt3']),0,65536);
		$txt3 = preg_replace("#[\\\]+$#", "", $txt3);
	}

	if($csconfig['cf_remail'] && $csconfig['cf_admin_email'] && $w == ''){

		// 상담메일 관리자에게 발송

		include_once(G5_LIB_PATH.'/mailer.lib.php');

		$subject = '['.$wr_subject.'] '.$wr_name.'님 상담 메일입니다.';

		ob_start();
		include_once ($board_skin_path.'/write_mail.skin.php');
		$content = ob_get_contents();
		ob_end_clean();

		mailer($wr_name, $wr_email, $csconfig['cf_admin_email'], $subject, $content, 1);

	}

	$sql1  = " update $write_table set
		addre = '$addre', tel = '$tel', hphone = '$hphone', oaddre = '$oaddre', otel = '$otel',
		fax = '$fax', ename = '$ename', sex = '$sex', birth = '$birth', merry = '$merry',
		grade = '$grade', bizno = '$bizno', job = '$job', duty = '$duty', likes = '$likes', emailok = '$emailok', rcid = '$rcid',
		input1 = '$input1', input2 = '$input2', input3 = '$input3', input4 = '$input4', input5 = '$input5',
		select1 = '$select1', select2 = '$select2', select3 = '$select3', select4 = '$select4', select5 = '$select5',
		radio1 = '$radio1', radio2 = '$radio2', radio3 = '$radio3', radio4 = '$radio4', radio5 = '$radio5',
		check1 = '$check1', check2 = '$check2', check3 = '$check3', check4 = '$check4', check5 = '$check5',
		input1 = '$input1', input2 = '$input2', input3 = '$input3', input4 = '$input4', input5 = '$input5',
		txt1 = '$txt1', txt2 = '$txt2', txt3 = '$txt3', effect = '$effect' where wr_id = '$wr_id' ";

	if(sql_query($sql1)){


		if($w == ''){
			$csconfig['cf_okmsg'] = ($csconfig['cf_okmsg'])?$csconfig['cf_okmsg']:'정상적으로 접수되었습니다.';

			// if($csconfig['cf_callback_url']) alert($csconfig['cf_okmsg'],$csconfig['cf_callback_url']);
			// else alert($csconfig['cf_okmsg'],"./write.php?bo_table=".$bo_table);
		}


	}
}

?>

답변을 작성하시기 전에 로그인 해주세요.
전체 15,059
QA 내용 검색
filter #php ×

회원로그인

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