php에서 페이지 이동하는 법은 다양하다.
그 중에 자바스크립트를 이용한 페이지 이동방법과 얘를 공통 함수로 빼서 편하게 사용할 수 있는법에 대해 소개하고자 한다.
우선 자바스크립트를 이용해 페이지를 이용하는 방법이다.
echo 를 꼭 써줘야 작동한다. 그리고 ""따옴표 안에 script 태그를 감싸준 뒤 그 안에 자바스크립트랑 동일한 코드를 넣어준다.
이렇게하면 php에서 javascript 코드가 작동하게 된다.
자주쓰는 코드는 함수로 만들어놓고 불러와서 사용하는게 젤 편하다.
/** script의 페이지 이동 함수문을 불러온다.
* @Param string path 이동할 페이지 경로
* @Param string type location의 어떤 함수를 부를 것인지
*/
function scriptLocation(string $path, string $type = "replace"): string
{
$locationValue = match ($type) {
'href' => "location.href = '$path';",
'replace' => "location.replace('$path');",
'back' => "history.back();",
'go' => "history.go($path);",
'reload' => "location.reload();",
default => "alert('존재하지 않는 함수 호출');",
};
return "<script>$locationValue</script>";
}
사용법은 해당 함수에 이동할 페이지 상대경로와 어떤 함수를 이용할 지 이름을 넘겨주면 끝이다!
// 해당 파일의 경로에 있는 mypage.php로 replace한다.
// 함수 기본값을 replace로 해둠
echo scriptLocation("./mypage.php");
// 해당 파일의 경로에 있는 mypage.php로 href로 이동한다.
echo scriptLocation("./mypage.php", "href");
// 뒤로가기를 진행한다.
// history.back() 시 주소가 필요없기 때문에 첫번째 매개변수는 빈 문자열을 넘겨주면 됨
echo scriptLocation("", "back");
함수 앞에 echo를 꼭 붙여줘야한다!
함수 내에 echo를 넣어도 되지만 왠지 보안상 문제가 생기진 않으려나하는 걱정때문에...ㅎㅎ
끝!