여분의 필드값에 값을 삽입하고 비교하기!
본문
글작성시에 관리자가 문제와 답을 입력을 하고, 학생들이 글 보기(view.skin)를 했을 때 정답입력란에 답을 입력하고, 답안제출을 클릭하면 답인지 아닌지를 체크하는걸 만들려고 합니다.
현재 글작성시에 wr_1 여분필드에 정답을 집어넣고, 글보기에 학생들이 정답을 입력했을때 wr_2에 값을 입력을 해서 답안제출을 클릭하면 정답인지 아닌지 체크할려고 하는데..
답안체크 버튼을 클릭했을때 함수를 만들어서 안에다가 넣으면 실행이 안되고, 그냥 밖에다가 넣으면 잘 실행이 되네요. (sql부분을 함수안에다가 넣으니 안됨. )
하도 오래간만에 하고, 초보수준이다보니 -_-; 검색하고, 수정하다가 시간이 다 가네요.
일단 답안체크버튼을 눌렀을때 작동이 되게끔 하고싶고, 메세지창이 나와서 정답인지 아닌지를하고싶은데 그부분을 어떻게 해야하는지 부탁드립니다.;
view.skin의 일부분입니다.
?>
<div class="write_div">
<?php if ($is_signature) { ?><p><?php echo $signature ?></p><?php } ?>
<input type="text" name="wr_2" id="wr_2" value="" required class="frm_input full_input required" size="50" maxlength="255" placeholder="정답을 입력하십시오.">
</div>
<?
sql_query(" update $write_table set wr_2='$wr_2' where wr_id='$wr_id' ");
if($view['wr_1']==$view['wr_2']){
echo "정답입니다.";
}else{
echo "틀렸습니다.";
}
?>
<li><div class="btn_confirm write_div">
<input type="button" name="wr_kk" value="답안제출" onclick="kk()">
</div>
</li>
p.s
현재는 view.skin 파일에서 바로 정답인지 아닌지 바로 출력하고 있는데
아무래도 다른페이지로 이동해서 하는편이 더 좋겠죠? 그럴려면 정답인지 아닌지 판단해서 그 값을 wr_1에 넣고 나중에 값을 비교해서 정답인지 아닌지 출력해야겠죠?
그럼 값을 넣었다고 가정하고, 특정페이지로 한다면 어떻게 해야할까요? 답안제출버튼에서 해야하는것이겠죠? (write.php도 불러와야하는것 같기도하고 @.@)
!-->답변 1
javascript과 php의 실행 순서 (백엔드와 프론트엔드의 실행 순서)를 이해하시면 불가능한 코드라는 것을 알 수 있을 겁니다. php 변수는 javascript에서 사용 가능하게끔 할 수 있지만, javascript 변수(이 경우에는 html attribute)는 php에서 직접 사용은 불가능합니다.
ajax와 같은 기술을 이용해서 php로 구현된 서버와 통신하도록 구축해야 합니다.
이렇게만 말씀드리면 너무 막막하실 것 같아 순서를 간단하게나마 알려드리겠습니다.
0. php를 이용해 wr_1의 값과 전달된 값(wr_2)이 일치하는지를 판단해주는 파일을 만듦 (true 또는 false를 보여주도록)
1. kk 함수에서 #wr_2, #wr_id의 값을 가져옴 (0에서 만든 파일에서 어떤 게시글의 wr_1인지를 알기 위해 wr_id도 필요함.)
2. 0에서 만든 파일로 ajax 요청을 함. 이때 #wr_2, #wr_id의 값을 보냄.
3. 2에서 보낸 요청의 callback으로 true인지 false인지를 가져옴.
4. true인 경우 정답, false인 경우 오답으로 처리