상대경로 상에서 게시판(board)에서 게시글을 클릭하면 해당 게시글을 수정할 수 있는 write.php 파일로 이동하는 기능을 작성하다보니 경로 추출이 쉽지 않다.
성공한 결과값부터 적어둔다.
$('.tr1').click(function() {
var idx=$(this).attr('data-uid');
var modulepath =$("#ajax_loginpath").attr('data-module');
var page = urlParam('p') ? urlParam('p') : 1;
var moveURL = modulepath + 'bbs/board.php?m=write&idx='+idx+'&p='+page;
$(location).attr('href', moveURL);
}).mouseover(function() {
$(this).children('.td2').css({'backgroundColor':'#DCDCDC','cursor':'pointer'});
}).mouseout(function() {
$(this).children('.td2').css({'backgroundColor':'#FFFFFF','cursor':'default'});
});
과정 설명
테이블에서 해당 게시글을 눌렀을때 별도의 팝업창을 띄우거나 해당 게시글을 수정할 수 있는 창을 만들기 위해서는 해당 게시글의 uid 번호를 알아야 한다.
이것은 테이블 작성시에
<tr class="tr1" data-uid="'.$row['uid'].'">
로 해당 uid 를 추출할 수 있게 해준다.
modulepath 는
<div id="ajax_loginpath" data-path="<?php echo $g['path_page'];?>" data-module="<?php echo $g['path_module'];?>"></div>
에서 추출할 수 있도록 작성한다.
해당 페이지 번호도 넘겨줘야 게시글 수정후 list.php 파일로 돌아올 때 화면이 변경되지 않는다.
그러기 위해서는 URL parameter 값을 받아서 넘겨줘야 한다.
이 URL parameter 값을 넘겨주는 함수는
http://handam.tistory.com/41 분이 작성한 함수가 있어서 편하게 해결할 수 있었다. 꾸뻑^^
function urlParam(name){
var results = new RegExp('[\?&]' + name + '=([^&#]*)').exec(window.location.href);
if (results==null){
return null;
}
else{
return results[1] || 0;
}
}
변수에서 추출을 못할 경우에는 null 을 반환하는데
페이지가 없으면 1을 반환하도록 삼항연산자를 사용했다.
var page = urlParam('p') ? urlParam('p') : 1;
이제 이동하고 싶은 URL을 설정하면 된다.
var moveURL = modulepath + 'bbs/board.php?m=write&idx='+idx+'&p='+page;
$(location).attr('href', moveURL); // 해당 URL 로 이동
'Web 프로그램 > js, jQuery' 카테고리의 다른 글
[jQuery] ajax 처리 디버깅 (0) | 2017.11.29 |
---|---|
자바스크립트 값을 PHP로 전달 관련 알아둘 사항 (0) | 2017.10.25 |
ajax 상대 경로 설정 문제 완벽 해결방법 (0) | 2017.02.21 |
window.location 정리 (0) | 2017.02.16 |
[javascript] 자바스크립 데이터 타입 및 다시 보는 기초 (0) | 2017.01.15 |