죄송하지만 다시 질문 드릴께요~
본문
게시판 제목 클릭시 view.skin.php가 아닌 리스트 페이지 자체에서
모덜 팝업 레이어를 띄우고 레이어 안에 제목을 클릭한 내용을 보여주려고 해요...
우선 모덜 팝업까지는 했는데 레이어에선 게시판 DB 테이블의 처음 저장한 값만 보여지네요..
array를 json_encode(~~);로 하면 된다는데 결과는 똑같거든요..
소스를 올려볼테니 무엇이 잘못 되었는지 무엇이 빠져 있는지 혹시 알려주시면 안될까요??
-- list.skin.php --
<a href="<?php echo $list[$i]['href'] ?>" class="btn-example" onclick="layer_open('layer2');return false;"><?php echo $wr_subject ?></a>
위 소스는 list.skin.php에 제목 출력하는 라인에 있는 거구요..class와 onclick 이벤트가
모덜 팝업에 사용되는 것 이에요..
<?include_once($board_skin_path.'/div_view.php'); ?> // 모덜팝업 안의 레이어 내용들이구요
-- div_view.php --
이곳이 바로 게시판 제목을 클릭하면 그 제목을 db에서 추출하여 보여줄 페이지 입니다.
<?php
include_once('./_common.php');
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "">
<html xmlns="">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=euc-kr" />
<link rel="stylesheet" type="text/css" href="../css/view_table.css">
<link rel="stylesheet" type="text/css" href="../css/view_layout.css">
<script type="text/javascript">
function layer_open(el,sub){
var temp = $('#' + el);
var bg = temp.prev().hasClass('bg'); //dimmed 레이어를 감지하기 위한 boolean 변수
if(bg){
$('.layer').fadeIn(); //'bg' 클래스가 존재하면 레이어가 나타나고 배경은 dimmed 된다.
}else{
temp.fadeIn();
}
// 화면의 중앙에 레이어를 띄운다.
if (temp.outerHeight() < $(document).height() ) temp.css('margin-top', '-'+temp.outerHeight()/2+'px');
else temp.css('top', '0px');
if (temp.outerWidth() < $(document).width() ) temp.css('margin-left', '-'+temp.outerWidth()/2+'px');
else temp.css('left', '0px');
temp.find('a.cbtn').click(function(e){
if(bg){
$('.layer').fadeOut(); //'bg' 클래스가 존재하면 레이어를 사라지게 한다.
}else{
temp.fadeOut();
}
e.preventDefault();
});
$('.layer .bg').click(function(e){ //배경을 클릭하면 레이어를 사라지게 하는 이벤트 핸들러
$('.layer').fadeOut();
e.preventDefault();
});
var datas = viewpage();
}
function viewpage(val) {
var bo_table = '<?php echo $bo_table?>';
var sca = '<?php echo $sca?>';
var wr_subject = '<?php echo $wr_subject?>';
var wr_1 = '<?php echo $wr_1?>';
var wr_2 = '<?php echo $wr_2?>';
$.ajax({
type: 'POST',
url: g5_bbs_url+'/ajax.wr_view.php', // 아래 소스 참조 부탁드립니다.
dataType : 'json',
data: {
wr_subject: wr_subject,
bo_table: bo_table,
sca: sca,
wr_1: wr_1,
wr_2: wr_2
},
success: function(data) {
$('#wr_subject').val(data.wr_subject);
$('#wr_1').val(data.wr_1);
$('#wr_2').val(data.wr_2);
$('#wr_4').val(data.ca_name);
}
});
}
</script>
</head>
<body>
<div class="layer">
<div class="bg"></div>
<div class="pop-layer" id="layer2">
<div class="pop-container">
<div class="pop-conts">
<!--content //-->
<table width="100%" cellspacing='0' > <!-- cellspacing='0' is important, must stay -->
<!-- Table Header -->
<thead>
<tr>
<th colspan='3'>Model Name : <input type='text' id='wr_subject' name='wr_subject'></th>
</tr>
</thead>
<!-- Table Header -->
<!-- Table Body -->
<tbody>
<tr>
<td>번호</td>
<td><input type='text' id='wr_1' name='wr_1'></td>
</tr><!-- Table Row -->
<tr>
<td>코드</td>
<td><input type='text' id='wr_2' name='wr_2'></td>
</tr><!-- Table Row -->
<tr>
<td>RACK</td>
<td><input type='text' id='wr_4' name='wr_4'></td>
</tr><!-- Table Row -->
</tbody>
<!-- Table Body -->
</table>
<div class="btn-r">
<a class="cbtn" href="#">Close</a>
</div>
<!--// content-->
</div>
</div>
</div>
</div>
<div id="view" style="display:none;">
</div>
<!--모달윈도우부분-->
<script type="text/javascript">
$(function(){
$('#modaltrigger').leanModal({ top: 110, overlay: 0.85, closeButton: ".hidemodal" });
});
</script>
<!--//모달윈도우부분-->
</body>
</html>
-- ajax.wr_view.php--
<?php
include_once('./_common.php');
$wr_subject = $_POST['wr_subject'];
$wr_1 = $_POST['wr_1'];
$wr_2 = $_POST['wr_2'];
$bo_table = $_POST['bo_table'];
$sca = $_POST['sca'];
$row = sql_fetch(" select * from $write_table where wr_subject='$wr_subject' and ca_name='$sca'" );
$row2 = sql_fetch(" select count(*) as cnt from $write_table where wr_subject='$wr_subject' and ca_name='$ca_name'" );
$wr_1 = $row['wr_1'];
$wr_2 = $row['wr_2'];
$wr_subject = $row['wr_subject'];
$ca_name = $row['ca_name'];
$data = array('wr_1' => $wr_1, 'wr_2' => $wr_2, 'wr_subject' => $wr_subject, 'ca_name' => $ca_name);
echo json_encode($data);
?>
답변 1
ajax로 리턴하는 배열이 php배열이고 받는쪽은 js배열이니 안되는거 같습니다.
리턴할때 json으로 배열을 인코딩하시고 받는쪽 ajax에서 json으로 받으셔야 할거 같네요
그렇지 않으면 그냥 페이지를 html로 코딩후에 html로 리턴을 받으세요